[Haskell-cafe] Call for GUI examples - Functional Reactive Programming
Heinrich Apfelmus
apfelmus at quantentunnel.de
Sat Jul 9 10:09:12 CEST 2011
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
More information about the Haskell-Cafe
mailing list