[Haskell-cafe] Unambiguous choice implementation
Bartosz Milewski
bartosz at fpcomplete.com
Mon Jun 25 01:08:00 CEST 2012
I'm trying to understand Reactive Banana, but there isn't much
documentation to go about. How is RB positioned vis a vis Elliott (and then
there is the earlier Elliot and Hudak, and the later Elliot with the push
implementation and type classes). Do you have a toy applet that
demonstrates the use of Reactive Banana, something like Elliotts Bezier
editor, http://research.microsoft.com/pubs/69665/deop-tr.pdf ?
--Bartosz
On Sunday, June 24, 2012 7:21:07 AM UTC-7, Heinrich Apfelmus wrote:
>
> Bartosz Milewski wrote:
> > I'm reading Conal Elliot's paper, Push-Pull FRP. At some point he needs
> an
> > unambiguous choice operator, essentially to implement select: a future
> that
> > waits for one of its future arguments to fire. His implementation of
> unamb
> > creates two threads racing on a shared MVar. By his own admission, this
> is
> > very inefficient. My question is, is there a better implementation?
>
> The thing about unambiguous choice is that it goes beyond the dynamic
> semantics of the Haskell language. To implement it, you either need a
> new evaluation model built into the compiler, or you have to fake it
> somehow and that is likely to be inefficient.
>
>
> Also note that Conal's paper describes just one possible implementation
> of FRP. My reactive-banana library uses an implementation that doesn't
> require unambiguous choice at all. For a basic model, see
>
>
> http://hackage.haskell.org/packages/archive/reactive-banana/latest/doc/html/Reactive-Banana-Model.html
>
> The key idea is to keep all events synchronous and to reify some cases
> of "this event does not occur right now".
>
>
> Best regards,
> Heinrich Apfelmus
>
> --
> http://apfelmus.nfshost.com
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120624/5b313bf1/attachment-0001.htm>
More information about the Haskell-Cafe
mailing list