[Haskell-beginners] Non exhaustive pattern match not flagged?
Hugo Ferreira
hmf at inescporto.pt
Mon Oct 17 17:39:49 CEST 2011
Hello,
I am using the GHC compiler with the -W flag.
When I compile:
f :: [a] -> [b] -> Int
--f [] _ = error "undefined for empty array"
f _ [] = error "undefined for empty array"
f (_:xs) (_:ys) = length xs + length ys
I get a warning:
Warning: Pattern match(es) are non-exhaustive
In an equation for `f': Patterns not matched: [] (_ : _)
as expected. But for:
bigrams :: [a] -> [[a]]
--bigrams [] = []
bigrams [_] = []
bigrams xs = take 2 xs : bigrams (tail xs)
I don't. Why is the first predicate not detected as missing?
TIA,
Hugo F.
More information about the Beginners
mailing list