Proposal: Applicative => Monad: Call for consensus
twhitehead at gmail.com
Wed Jan 5 17:43:58 CET 2011
On January 4, 2011 13:53:22 Maciej Piechotka wrote:
> The bind is always harder as join x == x >>= id so join have 1 parameter
> known. In some cases it is large simplification (see Writer).
That's a very nice explanation.
I also find join is quite a bit clearer for me to think about in terms of
exactly what additional power monad gives you over applicative.
In applicative the outer computations can not access the results of inner
computations to react to them (values can only be injected inwards). Thus the
sequence/structure of the outer computation is independent of the inner one.
(presumably this strong guarantee makes various optimizations possible --
making it a shame to use a full blown monad when only applicative is needed)
Join makes makes the results of inner computations available to outer ones.
This allows the outer computation to react to the specifics of the inner one,
which is the additional power/complexity of a monad (e.g., my next IO action
can depend on the actual content of the file read in my previous IO action).
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 490 bytes
Desc: This is a digitally signed message part.
More information about the Libraries