
Forgot to forward my response to the list...
---------- Forwarded message ----------
From: Patrick LeBoutillier
I'm trying to write a combinatorial search algorithm with evaluation, and kind of stuck. Not sure how to do this.
I'm constructing a musical phrase, which is a list of MidiPitch:
[MidiPitch]
I have an evaluation function that determines the fitness of any given phrase:
eval :: [MidiPitch] -> Maybe Float
This returns Nothing if the phrase is completely unacceptable.
The idea is to build up a phrase one midi pitch at a time, choosing all possible next pitches (notes) from a range:
next pitch comes from: [10..90]
Most of the pitches will result in a phrase that evaluates to Nothing, so the combinatoral "explosion" will be limited.
I'd like to write a function that constructs a phrase of length n, and in fact will have to return a list of all phrases that have equal scores of the maximum.
-- <length of output phrase> -> <first pitch> -> <eval func> -> -- <all tied phrases of best score> coolFunc :: Int -> MidiPitch -> ([MidiPitch] -> Maybe Float) -> [[MidiPitch]]
I am stuck on how to write this.
thanks, Mike
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners
-- ===================== Patrick LeBoutillier Rosemère, Québec, Canada -- ===================== Patrick LeBoutillier Rosemère, Québec, Canada
participants (1)
-
Patrick LeBoutillier