[Haskell-cafe] Newbie Monad question
lemming at henning-thielemann.de
Tue Jan 25 14:21:30 EST 2005
On Tue, 25 Jan 2005, [iso-8859-1] Simon Ulfsb=E4cker wrote:
> I'm a functional programming newbie trying to get the hang of the concept=
> Monads, but one thing about bind puzzles me. Let's take an IO Monad-examp=
> readLn >>=3D \i -> readLn >>=3D \j -> return (i + j)
> I fail to see how (\j -> return (i + j)) can know about the value of i.
> Isn't just the value of the previous readLn passed to \j -> return (i + j=
The expression means
readLn >>=3D (\i -> (readLn >>=3D (\j -> return (i + j))))
That is the first readLn is combined with the function
(\i -> (readLn >>=3D (\j -> return (i + j))))
which processes its input, in this case represented by the identifier i.
More information about the Haskell-Cafe