David Barbour wrote:
Heinrich Apfelmus wrote:
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.
I believe behaviors are precisely the 'right' abstraction if the goal is to
model variables in a computation changing over time. But I agree that, if
the libraries aren't taking advantage of the implicit optimization
opportunities, you are better off finding libraries that do.
I agree that behaviors are the right abstraction if you only want to
know what result is being calculated, not how it is going to be calculated.
Unfortunately, the "how" is important for incremental computations
because there is no single canonical way to implement efficient updates.
It often depends on which functions are expensive, which can actually be
decoupled, and so on. I don't know any good abstraction for specifying
the "how"; I do know that FRP doesn't help much with that.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe