[Haskell-cafe] Is this a correct explanation of FRP?

Heinrich Apfelmus apfelmus at quantentunnel.de
Fri Mar 30 14:33:51 CEST 2012


Michael Snoyman wrote:
> First you state that we shouldn't use `union` for the `ePitch` Event,
> and then you used it for `bOctave`. Would it be more efficient to
> implement bOctave as someting like:
> 
>     eOctave :: Event t (Int -> Int)
>     eOctave =
>         filterJust toStep <$> eKey
>       where
>         toStep '+' = Just (+ 1)
>         toStep '-' = Just (subtract 1)
>         toStep _ = Nothing
> 
>     bOctave :: Behavior t Octave
>     bOctave = accumB 0 eOctave

It's largely a matter of efficiency in notation rather than efficiency 
in run-time.

> Also, I'm left wondering: how would you create a new event stream in
> the first place? You're telling us to just rely on `eKey`, which is
> fair, but a great follow-up would demonstrate building it. Looking
> through the docs I found `newEvent`, but I'm not quite certain how I
> would combine it all together.

It's best to look at the example for that and peruse the documentation 
in  Reactive.Banana.Frameworks  in case something is unclear.


Best regards,
Heinrich Apfelmus

--
http://apfelmus.nfshost.com




More information about the Haskell-Cafe mailing list