-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

[email protected] wrote:
|   [1..2] >>= return . (^2)
|
| This says "generate the list [1..2] and then use it to generate a list
| of squares". It's more than just application, it's a description of a
| sequence of actions. The whole point of list comprehensions (which is
| the only reason to have a list monad, as far as I know) is to think
| of it this way rather than as an application of concatMap.

The problem with your description is that you said "and then." The
result will be generated lazily. There is no sequencing here. Consider:

~    do x <- [0..]
~       y <- [0..9]
~       return (x, y)

Which list is generated first?

| As for Reader, I don't know enough about it to say anything.

Reader provides an immutable value that can be retrieved at any point in
the monad. There are no monadic side effects, so it doesn't really mean
much to say that anything happens in any particular order.

- - Jake
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkmLPEoACgkQye5hVyvIUKlaJACePGL6FdevDAmREsl/H9u7jjxS
bKsAoMzEkpw6XjOVg4xql8d4NN47lg8d
=jNtS
-----END PGP SIGNATURE-----
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to