On Jun 24, 2010, at 11:14 AM, Martin Drautzburg wrote:

Another question is: how much past and future knowledge do I need. (I believe the fundamental property of music is that things are ordered). In order to compute Volumes from Moments I can get pretty much away without the past, but computing Moments from Volumes definitely requires knowing "where I am",
because each new Moment has to be placed after a preceding Moment.


You can use pattern matching against lists.  For example:

process_rhythm_scheme :: RhythmScheme -> Rhythm
process_rhythm_scheme ( (Just foo,  Just bar )
                      : (Just foo', Just bar')
                      : (Just foo'', Just bar'')
                      : rest ) = undefined

will match a RhythmScheme where the first three entries are wholly defined, and will bind its values to foo, bar, foo', bar', rest, and so on.

I think "View Patterns" could help control the complexity of these patterns. http://hackage.haskell.org/trac/ghc/wiki/ViewPatterns. That page has quite a few nice constructs that could apply to your problem. ("Both patterns", "iterator style")
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to