[Haskell-cafe] Monad explanation
jonathanccast at fastmail.fm
Thu Feb 5 15:27:01 EST 2009
On Thu, 2009-02-05 at 12:21 -0800, David Leimbach wrote:
> On Thu, Feb 5, 2009 at 11:25 AM, Andrew Wagner
> <wagner.andrew at gmail.com> wrote:
> I think the point of the Monad is that it
> works as a container of stuff, that still
> allows mathematically pure things to happen,
> while possibly having some opaque "other
> stuff" going on.
> This at least sounds, very wrong, even if it's not. Monads
> are not impure. IO is, but it's only _one_ instance of Monad.
> All others, as far as I know, are pure. It's just that the
> bind operation allows you to hide the stuff you don't want to
> have to worry about, that should happen every time you compose
> two monadic actions.
> Well all I can tell you is that I can have (IO Int) in a function as a
> return, and the function is not idempotent in terms of the "stuff"
> inside IO being the same.
Sure it's the same.
> cmp /bin/cat /bin/cat
> cp /bin/cat ~
> cmp /bin/cat ~/cat
Pretty much the same, anyway.
More information about the Haskell-Cafe