[Haskell-cafe] 1 = 0?
Erik Hesselink
hesselink at gmail.com
Tue Jun 17 11:05:12 UTC 2014
On Tue, Jun 17, 2014 at 12:51 PM, Roman Cheplyaka <roma at ro-che.info> wrote:
> * Alexey Muranov <alexey.muranov at gmail.com> [2014-06-17 03:25:10-0700]
>> Is this the expected behavior that
>>
>> 1 = 0
>>
>> does not raise any error? What does this mean?
>
> 1 is a valid (nullary) pattern, so yes. This pattern binding obviously fails.
>
> Prelude> let x at 1 = 0
> Prelude> x
> *** Exception: <interactive>:2:5-11: Irrefutable pattern failed for pattern x at 1
It doesn't even have to fail, since numeric literals are overloaded:
instance Num () where
fromInteger _ = ()
v :: ()
v = let x at 1 = 0 in x
> v
()
Erik
More information about the Haskell-Cafe
mailing list