[EMAIL PROTECTED] wrote:
Andrew Coppin writes:
I've seen comments in various places that monads allow you to "borrow things from the future".
That sounds completely absurd to me... can anybody explain?

Actually, "borrowing from the future" - in an interpretation which is close to my own interests - doesn't need monads, but *laziness*.

While this is true, the "mdo" and associated MonadFix class do implement it in a monadic framework where you can write things like

  mdo
     x <- f y
     y <- g x

If you interpret do-notation as equivalent to imperative programming then this does indeed look like time travel. Under the covers its more equivalent to

  let
     x = f y
     y = g x

which is also known as "tying the knot" or the "credit card transform" (both keywords worth looking up).

However I can't say I really have my head around it properly.

Paul.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to