Henning Thielemann wrote:
Heinrich Apfelmus wrote:

Can GUI programming be liberated from the IO monad? Functional Reactive Programming (FRP) promises as much, and I'm trying to make this dream a reality with my [reactive-banana][] library. Having released version 0.4.0.0, I am now looking for example programs to direct the future evolution of the library.

This is the request that I was waiting for. :-)

:D

* Notes of a musical performance can be modeled as event streams (MIDI), as Henning Thielemann has [done with great effect][midi streams]. Surely, reactive-banana should be up to the task, but writing an arpeggiator seems impossible at the moment.

Oh, I am addressed explicitly, thanks! Yes, GUI for 'streamed' would be nice, too. In the meantime I switched from an approach with lazy lists to one with arrow-like stream processors. This way I could resolve all issues with wrong timing and inappropriate waiting, but now code looks more low-level. There are some examples lying around, that I even not started to implement, because I expect that implementing them in the current low-level way will yield nasty bugs. Thus I am highly interested in more sophisticated MIDI stream editor combinators. I expect that inspiration from other FRP frameworks would help me.

Of course, my intention was that you throw away your stream processors and use reactive-banana for everything. ;D I have made sure that it can be used both for real-time and for offline computations.

Could you expand a little on your arrow-like stream processors? What do the arrows look like,

    data SF a b = SF (a -> (b, SF a b))

? Which additional primitives did you include, for instance

    switch :: SF in (out, Maybe t) -> (t -> SF in out) -> SF in out
    delay  :: Time -> SF a b -> SF a b

?

And of course, I am particularly interested in the nasty examples that you came up with. :)


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