[prev in list] [next in list] [prev in thread] [next in thread] 

List:       haskell-beginners
Subject:    =?ISO-8859-1?Q?R=E9f=2E_=3A_[Haskell-beginners]_a_problem?=
From:       corentin.dupont () ext ! mpsa ! com
Date:       2010-06-25 13:33:09
Message-ID: OFC3194BFC.B1AC7E8F-ONC125774D.004A3F7B-C125774D.004A7244 () mpsa ! com
[Download RAW message or body]

Hello,
I would do (not that concise):

toMaybe :: Music_Data_ -> (Maybe Note, Maybe Direction, Maybe Sound)
toMaybe (Music_Data_1 n) = (Just n, Nothing, Nothing)
toMaybe (Music_Data_4 d) = (Nothing, Just d, Nothing)
toMaybe (Music_Data_9 s) = (Nothing, Nothing, Just s)

catMaybes3 (a,b,c) = (catMaybes a, catMaybes b, catMaybes c)

sortOutMusicData :: [Music_Data_] -> ([Note],[Direction],[Sound])
sortOutMusicData = catMaybes3 . unzip3 . map toMaybe


Corentin



                                                                           
             Michael Mossey                                                
             <mpm@alumni.calt                                              
             ech.edu>                                                 Pour 
             Envoyé par :              beginners@haskell.org               
             beginners-bounce                                           cc 
             s@haskell.org                                                 
                                                                     Objet 
                                       [Haskell-beginners] a problem       
             23/06/2010 10:08                                              
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Can I get a suggestion for a concise way to write 'sortOutMusicData' as
described here? This is MusicXML-related.

data Music_Data_ = Music_Data_1 Note
                  | Music_Data_4 Direction
                  | Music_Data_9 Sound
                   ...

sortOutMusicData :: [Music_Data_] -> ([Note],[Direction],[Sound])

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners


_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic