[Haskell-cafe] do vs. pattern matching

Matthew wonderzombie at gmail.com
Sat Aug 4 08:34:41 CEST 2012

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:

	  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?

- Matthew

More information about the Haskell-Cafe mailing list