[Haskell-cafe] Question: Lazy Incremental Evaluation and Haskell?

Heinrich Apfelmus apfelmus at quantentunnel.de
Fri Oct 7 12:17:45 CEST 2011

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


More information about the Haskell-Cafe mailing list