David Barbour wrote:
Benjamin Redelings wrote:
My question is, roughly, is there already an existing framework for
incremental evaluation in Haskell?

Functional Reactive Programming can model this sort of 'change over
time' incremental computation, but I doubt you'd get a performance
benefit from it unless your operations are considerably more
expensive than '+' on numbers. Look into the 'Reactive' library, and
Conal Elliott's paper on it (Push-Pull FRP).

I'm currently developing a library for functional reactive programming[1] and I've thought a bit about incremental evaluation and FRP. Here my conclusions:

FRP is somewhat orthogonal to incremental computation because FRP is focusing on expressiveness while incremental computation focuses on performance. You can formulate some incremental algorithms in terms of FRP, but you need special support from the implementation to make it efficient. I do know that reactive-banana can handle some cases, but I have my doubts whether Conal's Reactive library can (afaik, nobody has tried to reason about its resource usage explicitly). Even then, events and behaviors are "one abstraction level too low". In my opinion, you are better off with a library/approach geared directly towards incremental computations.


  [1]: http://haskell.org/haskellwiki/Reactive-banana

Best regards,
Heinrich Apfelmus

--
http://apfelmus.nfshost.com


_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to