Duals or ranges and reactive D

Szymon Gatner noemail at gmail.com
Thu Feb 27 04:41:13 PST 2014


C#'s IObservable<>/IObserver<> made me think how would a dual 
[1][2] of a range concept look in D. Since D has no equivalent 
IEnumerable<> (as it is no needed thanks to templates) it is only 
about IEnumerator<> / IObserver<> part which relates to a D range.

Ranges/enumerators are models of 'pull' style interface whereas 
their duals represent models of 'push' style enabling reactive 
programming [3] techniques which are really nicely solving issues 
of asynchronous / event - based programming.

I suppose OutptRange is similar in concept, although it has 
'OnCompleted' / 'OnError' missing.

What do you think? Rx along with LINQ is a really clean solution 
to the problem of asynchronous ranges of values. I think it would 
be very nice to have in D too.

[1] 
http://csl.stanford.edu/~christos/pldi2010.fit/meijer.duality.pdf
[2] 
http://josemigueltorres.net/index.php/ienumerableiobservable-duality/
[3] 
https://channel9.msdn.com/Shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx


More information about the Digitalmars-d mailing list