[Haskell-cafe] Problem about pattern matching.
Henning Thielemann
schlepptop at henning-thielemann.de
Wed Apr 28 13:51:46 EDT 2010
minh thu schrieb:
> 2010/4/28 Magicloud Magiclouds <magicloud.magiclouds at gmail.com>:
>> Hi, I have code as below. How come "case" version works wrong and
>> gives me "overlap" compiling warning? Thanks.
>> if dayOfMonth == firstDayOfMonth
>> then v day (x, y)
>> else if dayOfMonth == lastDayOfMonth
>> then not_ $ v day (x, y)
>> else Mider day (x, y)
>>
>> case dayOfMonth of
>> firstDayOfMonth -> v day (x, y)
>> lastDay -> not_ $ v day (x, y)
>> _ -> Mider day (x, y)
>
> Hi,
>
> firstDayIfMonth and lastDay are new variables, not previously bound
> variable. This means that trying to pattern match (the value of)
> dayOfMonth will always succeed with the first alternative.
You can however simulate a 'case' with predefined variables:
http://haskell.org/haskellwiki/Case
More information about the Haskell-Cafe
mailing list