[Haskell-cafe] Why isn't pattern matching lazy by default?

Felipe Almeida Lessa felipe.lessa at gmail.com
Wed Sep 19 06:49:06 EDT 2007

On 9/19/07, Peter Verswyvelen <bf3 at telenet.be> wrote:
>  Now why isn't pattern matching lazy by default?  This seems odd for a
> newbie since everything else is lazy by default.

AFAIK, pattern matches are desugared to cases, so

f (x:xs) = rhs
f []     = rhs'

is equivalent to

f y = case y of
    (x:xs) -> rhs
    []     -> rhs'

Case's have to be strict because that's how we look inside the values
in Haskell =). Of course I may be somehow mistaken here, as I am
learning Haskell, too.


More information about the Haskell-Cafe mailing list