
Erik de Castro Lopo wrote:
Hi all,
Ocaml's match .. with expression (very similar to Haskell's case) allows multiple matches for a single result (naive example):
let f x = match x with | 0 -> "zero" | 1 | 3 | 5 | 7 -> "odd" | 2 | 4 | 6 | 8 -> "even" _ -> "bad number"
Is there a similar thing in Haskell? At the moment I have to do something like :
f x = case x of 0 -> "zero" 1 -> "odd" 3 -> "odd" 5 -> "odd" 7 -> "odd" 2 -> "even" 4 -> "even" 6 -> "even" 8 -> "even" _ -> "bad number"
Cheers, Erik
Hi Erik, you can use guards like this: f x | x == 0 = "zero" | x `elem` [1,3,5,7] = "odd" | x `elem` [2,4,6,8] = "even" | otherwise = "bad number" daniel.