AW: Newbie qustion about monads
Marcin 'Qrczak' Kowalczyk
qrczak at knm.org.pl
Thu Oct 2 15:47:15 EDT 2003
W liście z czw, 02-10-2003, godz. 14:25, Juanma Barranquero pisze:
> Yeah, I know. But it's difficult to ensure I'm satisfying the laws when
> I'm not entirely sure what do they ask from me...
1. (return x) >>= f == f x
2. m >>= return == m
3. (m >>= f) >>= g == m >>= (\x -> f x >>= g)
My intuition:
1 & 2. return doesn't do anything (except having the given result).
If added before or after an action, it doesn't change its effect.
3. (>>=) is associative, so it must not leave trails of where it was
applied, it only propagates effects of the arguments being composed.
--
__("< Marcin Kowalczyk
\__/ qrczak at knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/
More information about the Haskell-Cafe
mailing list