It occurred to me that the predicate will generally be a monadic function
itself, so here's a
refined version:
:: Monad m = (a - m Bool) - (a - m a) - a - m a
untilM pred f x = do c - pred x
if c then return x
else f x = untilM pred f
Think of a computation in the State monad, a predicate will probably want to
consult that state.
Matthew Cox
- Original Message -
From: Matthew Cox
To: haskell-cafe@haskell.org
Sent: Sat, 19 May 2007 13:10:40 -0600
Subject: Re: [Haskell-cafe] Pesky monads...
You can define one:
untilM :: Monad m = (a - Bool) - (a - m a) - a - m a
untilM pred f x | pred x = return x
| otherwise = f x = untilM pred f
Matthew Cox
- Original Message -
From: Andrew Coppin
To: haskell-cafe@haskell.org
Sent: Sat, 19 May 2007 19:49:40 +0100
Subject: [Haskell-cafe] Pesky monads...
I've been getting some pretty weird complaints from the type checker.
And I just figured out why! Grr...
Is there any function that does the same thing as until, but in a monad?
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe