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


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to