Thread overview
Reactive data
Mar 23, 2018
crimaniak
Mar 31, 2018
lempiji
Apr 03, 2018
crimaniak
March 23, 2018
I want to have reactive variables like in this example:

```
USING_REACTIVE_DOMAIN(D)

// The two words
VarSignalT<string> firstWord  = MakeVar<D>(string( "Change" ));
VarSignalT<string> secondWord = MakeVar<D>(string( "me!" ));
// ...
SignalT<string> bothWords = firstWord + string( " " ) + secondWord;
```

from this page: http://schlangster.github.io/cpp.react/tutorials/BasicSignals.html

Is this possible to make it in D with https://github.com/lempiji/rx ? Is there other libraries exists for this topic?

March 31, 2018
On Friday, 23 March 2018 at 12:59:23 UTC, crimaniak wrote:
> I want to have reactive variables like in this example:
>
> ```
> USING_REACTIVE_DOMAIN(D)
>
> // The two words
> VarSignalT<string> firstWord  = MakeVar<D>(string( "Change" ));
> VarSignalT<string> secondWord = MakeVar<D>(string( "me!" ));
> // ...
> SignalT<string> bothWords = firstWord + string( " " ) + secondWord;
> ```
>
> from this page: http://schlangster.github.io/cpp.react/tutorials/BasicSignals.html
>
> Is this possible to make it in D with https://github.com/lempiji/rx ? Is there other libraries exists for this topic?

I think that it can use combineLatest which was recently added.
If using 'alias this' or 'operator overloading', might look like more original example.

-----------
import rx;

auto firstWord = new BehaviorSubject!string("Change");
auto secondWord = new BehaviorSubject!string("me!");

auto bothWords = new BehaviorSubject!string("");
combineLatest!((a, b) => a ~ " " ~ b)(firstWord, secondWord).doSubscribe(bothWords);

writeln(bothWords.value); // Change me!

firstWord.value = "TEST";
writeln(bothWords.value); // TEST me!
-----------
April 03, 2018
On Saturday, 31 March 2018 at 16:08:36 UTC, lempiji wrote:

>
> -----------
> import rx;
>
> auto firstWord = new BehaviorSubject!string("Change");
> auto secondWord = new BehaviorSubject!string("me!");
>
> auto bothWords = new BehaviorSubject!string("");
> combineLatest!((a, b) => a ~ " " ~ b)(firstWord, secondWord).doSubscribe(bothWords);
>
> writeln(bothWords.value); // Change me!
>
> firstWord.value = "TEST";
> writeln(bothWords.value); // TEST me!
> -----------

Thanks! I will play with it.