Henning Thielemann wrote:
Heinrich Apfelmus wrote:
Question: how would you actually like to describe the guitar simulator
at a high-level? Did you already wish for some specific combinators?
Assume that you had something like reactive-banana available and
imagine that there were a benevolent djinn granting you three new
primitive combinators of your choice.
If I would know of appropriate combinators, I would just implement them
and not ask the djinn. :-)
Fair enough. :D
How did you do it with lazy lists? The more I think about it, the more I
come to the conclusion that it's impossible to implement this without
duplicating the event data type. As said, the main problem is that you
want a combinator
append :: Pattern -> Pattern -> Pattern
that plays the second pattern (event sequence, the guitar strum) right
after the first one. This means that patterns are *finite*, but this
seems to collide with the requirement that any FRP style Event must be
potentially infinite.
Once you do implement a small DSL for patterns, everything is fine,
though, as the Wave.hs example demonstrates.
Best regards,
Heinrich Apfelmus
--
http://apfelmus.nfshost.com
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe