On 20/06/11 16:37, David Barbour wrote:
On Mon, Jun 20, 2011 at 7:45 AM, Richard Senington <sc06r2s@leeds.ac.uk> wrote:
I have recently become interested in Dataflow programming and how it related to functional languages.
I am wondering if the community has any advice on reading matter or other directions to look at.

So far I have been looking through the FRP libraries, using Haskell functions with lazy lists for co-routines and
the Essence of Dataflow Programming by Uustalu and Vene where they propose using co-monads.

It looks as though Iteratees are also relevant but I have not got round to looking at them in detail yet.

Have I missed anything?

Arrows are a useful model for dataflow programming. But several FRP models are arrowized, so you might already have observed this. Which FRP models have you looked at? (there are several)

I'm developing a model for reactive dataflows in open distributed systems, called reactive demand programming (RDP). It's basically distributed FRP with carefully constrained side-effects and signals that model disruption. The effects model enforces spatial idempotence and commutativity, which allows developers to perform refactoring and abstraction similar to that in a pure functional model. That signals model disruption allows 'open' composition and extension (e.g. runtime plugins). RDP is more composable than FRP because client-server relationships can be captured as regular RDP behaviors. 

RDP isn't ready for release, yet, but you can read a bit more at my blog:

[1] http://awelonblue.wordpress.com/2011/05/21/comparing-frp-to-rdp/

Regards,

David Barbour


I have been looking through the papers by Conal Elliott and Paul Hudak, Hudak's book "The Haskell School of Expression" (chapters 13,15,17) and the latest version
of the Reactive library on Hackage.
In the past I have looked at Arrows, but I think I should have another look now, thanks for the suggestion.

RS