[Haskell-cafe] Re: Can we come out of a monad?
Anton van Straaten
anton at appsolutions.com
Fri Jul 30 06:44:32 EDT 2010
Kevin Jardine wrote:
> I think that we are having a terminology confusion here. For me, a
> pure function is one that does not operate inside a monad. Eg. ++,
> map, etc.
Ivan Miljenovic has already given a good response, to which I'll only
I suspect that your idea of the meaning of purity came from
over-generalization from the IO monad. IO actions may be impure, but
that's not true of all other monad types. (Most are actually pure.)
Really, the IO monad is a horrible exception to normal monadic behavior,
and in an ideal world it should only be introduced as a special case
after gaining a good understanding of monads in general.
Of course in practice, people like their programs to be able to do I/O,
so the IO monad ends up being one of the first things learned.
It's a bit like teaching a new carpenter about the concept of "tools",
and then starting them out with a chainsaw, leading to the natural
conclusion that tools are loud, insanely dangerous things.
More information about the Haskell-Cafe