you can also use no case :
noteToMIDINumber : ( Note, Octave ) -> MidiNote
noteToMIDINumber ( note, octave ) =
let
idxOrZero idx n =
if n == note then
idx
else
0
notes =
[ C, Db, D, Eb, E, F, Gb, G, Ab, A, Bb, B ]
in
(List.sum (List.indexedMap idxOrZero notes)) + (2 + octave) * 12
:)
On Sun, May 29, 2016 at 1:14 PM, Mario Sangiorgio <[email protected]
> wrote:
> Do you really need such a huge number of cases?
>
> I think the following should work:
>
> mapNote : Note -> Int
> mapNote note =
> case note of
> C -> 0
> Db -> 1
> D -> 2
> Eb -> 3
> E -> 4
> F -> 5
> Gb -> 6
> G -> 7
> Ab -> 8
> A -> 9
> Bb -> 10
> B -> 11
>
> noteToMIDINumber note =
> case note of
> (note,octave) -> (mapNote note) + (2+octave)*12
>
> On Sun, May 29, 2016 at 4:16 AM Pablo Botelho <[email protected]> wrote:
>
>> Hello folks, im trying to compile a module with a huge `case of`
>> expression and my memory goes up until the computer freezes
>>
>> here is the code
>>
>> https://gist.github.com/pablobcb/6d6af87b627b3b7e432bd2b123bb8602
>>
>> would be better to create a data structure to avoid these issues?
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Elm Discuss" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Elm Discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
--
There is NO FATE, we are the creators.
blog: http://damoc.ro/
--
You received this message because you are subscribed to the Google Groups "Elm
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.