On Sat, Aug 4, 2012 at 7:05 AM, Alexander Solla <[email protected]> wrote: > > > On Fri, Aug 3, 2012 at 11:34 PM, Matthew <[email protected]> wrote: >> >> 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? > > > The short answer is to write a "one liner" using (>>=) and (>>), unless you > need to bind more than one value to a variable. In that case, you should > use an applicative interface, if available and otherwise possible, and > finally do-notation.
Aha. I'd forgotten all about >>. Thanks, everyone! I'm going with callFoo >> callBar >> return baz. _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
