Duals or ranges and reactive D

2014-02-27 Thread Szymon Gatner
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


Re: Duals or ranges and reactive D

2014-02-27 Thread Szymon Gatner
On Thursday, 27 February 2014 at 12:41:14 UTC, Szymon Gatner 
wrote:

C#'s IObservable<>/IObserver<> made me think how would a dual


Topic should of course be: "Duals OF ranges and reactive D"



Re: Duals or ranges and reactive D

2014-03-08 Thread Timon Gehr

On 02/27/2014 01:41 PM, Szymon Gatner wrote:

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



In case you are interested, I have thrown together a small proof of 
concept implementation: http://dpaste.dzfl.pl/9d8386768da0


Re: Duals or ranges and reactive D

2014-03-10 Thread Szymon Gatner

On Saturday, 8 March 2014 at 12:01:10 UTC, Timon Gehr wrote:

On 02/27/2014 01:41 PM, Szymon Gatner wrote:
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



In case you are interested, I have thrown together a small 
proof of concept implementation: 
http://dpaste.dzfl.pl/9d8386768da0


Wow, that is now what I'd small ;) I will definitely take a look.

Is it something you already had written or something new? How do 
you feel about the concept?


Re: Duals or ranges and reactive D

2014-03-11 Thread Timon Gehr

On 03/10/2014 08:26 PM, Szymon Gatner wrote:


In case you are interested, I have thrown together a small proof of
concept implementation: http://dpaste.dzfl.pl/9d8386768da0


Wow, that is now what I'd small ;) I will definitely take a look.

Is it something you already had written or something new?


I've written it in response to you post. (Note that it works with DMD 
2.064.)



How do you feel about the concept?


It does not make a lot of sense with value semantics, so efficiency 
might be a concern. I don't know how useful this specific implementation 
(that deviates from std.range only slightly) would be in practice (e.g. 
probably one wants to be able to reserve space even if writing is not 
random access.)


Re: Duals or ranges and reactive D

2014-05-08 Thread via Digitalmars-d
Reactive programming is related to dataflow, so you will run into 
problems when you get beyond toy-size programs. Though, with 
compiler support…


http://cs.brown.edu/~sk/Publications/Papers/Published/bck-lowering-opt-trans-frp/paper.pdf


Re: Duals or ranges and reactive D

2015-10-23 Thread jadbox via Digitalmars-d
On Thursday, 8 May 2014 at 19:52:01 UTC, Ola Fosheim Grøstad 
wrote:
Reactive programming is related to dataflow, so you will run 
into problems when you get beyond toy-size programs. Though, 
with compiler support…


http://cs.brown.edu/~sk/Publications/Papers/Published/bck-lowering-opt-trans-frp/paper.pdf


Any update on introducing Observable push concepts into D?