Monads and Maybe
Martin Norbäck
d95mback@dtek.chalmers.se
21 Aug 2003 22:54:16 +0200
tor 2003-08-21 klockan 22.26 skrev Jon Cast:
> Yes. Many complicated proposals have been made, but there's a
> straightforward, general mechanism:
>
> > addMaybe :: Num alpha => Maybe alpha -> Maybe alpha -> Maybe alpha
> > addMaybe a b = a >>= \x ->
> > b >>= \y ->
> > return (x + y)
>
> or
>
> > addMaybe a b = do
> > x <- a
> > y <- b
> > return (x + y)
or
addMaybe = Monad.liftM2 (+)
I personally use those monadic lifting functions a lot. Monad.sequence
combined with list comprehension is another favorite.
Regards,
Martin