On Fri, Jul 23, 2010 at 11:43:08AM -0700, michael rice wrote: > What does it mean to "promote a function to a monad?" > > It would seem that the monad values must understand the function that's being > promoted, like Ints understand (+). > > Prelude Control.Monad> liftM2 (+) (Just 1) (Just 1) > Just 2 > > But how does one add [0,1] and [0,2] to get [0,2,1,3]?
It depends upon the semantics of the particular monad. List monads represent nondeterminism. So, for example, [0,1] represents a 0 or 1, and [0,2] represents a 0 or 2. When you add 0 or 1 to 0 or 2, your possible answers are [0,2,1,3]. Alex _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
