Skip to content

Examples Operators

Luis Llamas edited this page Apr 25, 2019 · 8 revisions

★ = important

Where ★

#include "ReactiveArduinoLib.h"

int values[] = { 0, 1, 1, 2, 1, 5, 4 }; 
size_t valuesLength = sizeof(values) / sizeof(values[0]);

auto observableArray = Reactive::FromArray<int>(values, valuesLength);

void setup()
{
	Serial.begin(9600);
	while (!Serial) delay(1);

	observableArray
	>> Reactive::Where<int>([](int x) {return x > 2; })
	>> Reactive::ToSerial<int>();
}

void loop()
{
}

Distinct ★

#include "ReactiveArduinoLib.h"

auto observableInt = Reactive::FromProperty<int>();

void setup()
{
	Serial.begin(9600);
	while (!Serial) delay(1);

	observableInt
	>> Reactive::Distinct<int>()
	>> Reactive::ToSerial<int>();
}

void loop() 
{
	delay(1000);
	observableInt = 1;
	delay(1000);
	observableInt = 2;
	delay(1000);
	observableInt = 2;
	delay(1000);
	observableInt = 3;
}

If

#include "ReactiveArduinoLib.h"

int values[] = { 0, 1, 1, 2, 1, 5, 4 }; 
size_t valuesLength = sizeof(values) / sizeof(values[0]);

auto observableArray = Reactive::FromArray<int>(values, valuesLength);

void setup()
{
	Serial.begin(9600);
	while (!Serial) delay(1);

	observableArray
	>> Reactive::If<int>([](int x) { return x > 2; }, 
			     [](int x) {Serial.println(10 * x); })
	>> Reactive::If<int>([](int x) { return x <= 2; }, 
			     [](int x) {Serial.println(5 * x); })
	>> Reactive::DoNothing<int>();
}

void loop()
{
}

ForEach

#include "ReactiveArduinoLib.h"

int values[] = { 0, 1, 1, 2, 1, 5, 4 }; 
size_t valuesLength = sizeof(values) / sizeof(values[0]);

auto observableArray = Reactive::FromArray<int>(values, valuesLength);

void setup()
{
	Serial.begin(9600);
	while (!Serial) delay(1);

	observableArray
	>> Reactive::ForEach<int>([](int x) {Serial.println(x); })
	>> Reactive::DoNothing<int>();
}

void loop()
{
}

Repeat

#include "ReactiveArduinoLib.h"

int values[] = { 0, 1, 1, 2, 1, 5, 4 }; 
size_t valuesLength = sizeof(values) / sizeof(values[0]);

auto observableArray = Reactive::FromArray<int>(values, valuesLength);

void setup()
{
	Serial.begin(9600);
	while (!Serial) delay(1);

	observableArray
	>> Reactive::Repeat<int>(3)
	>> Reactive::ToSerial<int>();
}

void loop()
{
}
Clone this wiki locally