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

Reply via email to