Hola! Que tal?
No entiendo el porque del resultado de este ejercicio:

Hola! Que tal?
No entiendo el porque del resultado de este ejercicio:
Hola,
La razón es que tanto en m1 como m2 hay ocurrencias de Nothing. No así en m3 en que las dos computaciones son de la forma Just v.
Recordar que la do-notation no es otra cosa que syntactic sugar. Por ejemplo, m1 equivale a:
Just 3 >>= \x -> Just 6 >>= \z -> Nothing >>= \y -> return (x + z)
Para la mónada Maybe el operador bind (>>=) es tal que:
Nothing >>= \x -> m = Nothing
o sea, ante la aparición de un Nothing toda la computación es Nothing. Eso explica el resultado en m1 y m2.
Saludos
Alberto.
Hola Alberto, Gracias por la respuesta.
Igualmente M1 no retorna (x+z) = Just 9? ( x= Just 3, z= Just 9) ???
No, porque la definición de (>>=) para Maybe
dice que:
Nothing >>= f = Nothing
sin importar quién sea f
.