I wouldn't-it was a bad example. My only point was that because of the
way (>>=) is implemented for lists the order of the arguments 'a' and
'b' in 'liftM2 f a b' matters.

-deech

On Sat, Jul 24, 2010 at 1:37 AM, Lennart Augustsson
<[email protected]> wrote:
> Why would you expect swapped operands to (-) ?
>
>
> Sent from my iPad
>
> On Jul 23, 2010, at 20:12, aditya siram <[email protected]> wrote:
>
>> Lists are non-deterministic, but the function taken by liftM2 does not
>> necessarily generate all possible outcomes. In the case of (+) it
>> does, not in the case of (-):
>> liftM2 (-) [0,1] [2,3] => [0-1,0-2,1-2,1-3] => [-2,-3,-1,-2]
>> if all possible cases were generated between the two lists we have to
>> include also:
>> [2-0,2-1,3-0,3-1]
>>
>> -deech
>>
>> On Fri, Jul 23, 2010 at 3:44 PM, Alex Stangl <[email protected]> wrote:
>>> 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
>>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> [email protected]
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to