
4 Aug
2012
4 Aug
'12
6:34 a.m.
I'm a somewhat experienced coder but I am relatively new to Haskell. I've got a question about whether a usage of do notation is idiomatic, or whether it's better to use pattern matching. I've got two functions which take an input and return Maybe SomeType. If either returns Nothing, I also want to return Nothing. If they both return something, then I'll return something unrelated. With do notation, I can write something like this: do foo <- callFoo x bar <- callBar x return (baz) Alternatively, there's a straightforward pattern match. After binding foo, bar in a couple of where clauses: case (foo,bar) of (Just x, Just y) -> baz _ -> Nothing So which approach is more idiomatic, do you think? Thanks, - Matthew