
I think that for monads the cleanest way of doing conditional
execution is using 'when' and 'unless' [1] and 'guard' if your type
is a Monoid.
-deech
[1] http://www.haskell.org/ghc/docs/latest/html/libraries/base/Control-Monad.htm...
On Wed, Jan 26, 2011 at 2:22 PM, Edward Amsden
Inside a do block, I can very conveniently substitute
let x = <pure exp> <continued monadic code>
for either x <- return <pure exp> <continued monadic code>
or let x = <pure exp> in do <continued monadic code>
However, I can't do anything similar (that I know of) with if or case expressions. If I use if or case inside a do block, it's likely that I'm still using monadic expressions (at least in my experience). Is there some nasty semantic ambiguity that comes of this? Is it just not in the standard yet? Is there some extension that I'm not aware of?
-- Edward Amsden Undergraduate Computer Science Rochester Institute of Technology www.edwardamsden.com
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe