[Haskell-cafe] Question on "case x of g" when g is a function

Henning Thielemann lemming at henning-thielemann.de
Thu Jan 27 07:02:55 EST 2005


On Thu, 27 Jan 2005 yeoh at cs.wisc.edu wrote:

> Can a kind soul please enlighten me on why f bit0 and f bit1
> both return 0?
>
> > bit0     = False
> > bit1     = True
> > f x = case x of
> >         bit0 -> 0
> >         bit1 -> 1

If you compile with 'ghc -Wall' GHC should report that the identifier
'bit0' in the case expression shadows the global 'bit0' identifier. What
you want to do is:

f x = if x == bit0 then 0 else 1



More information about the Haskell-Cafe mailing list