
That's what I was thinking, but I couldn't figure out if I wanted
MonadPlus, Alternative or maybe Monoid because they all have zero elements.
On Thu, Jul 20, 2017, 21:52 Joshua Grosso
Could MonadPlus (with mzero) or Alternative (with empty) provide the termination condition, if this pattern turned out to be more generally useful?
Joshua Grosso
On Thu, Jul 20, 2017 at 7:16 PM, Jeff Clites
wrote: Also this pattern does seem Maybe-specific, in that for the general Monad case there's not an obvious termination condition.
JEff
On Jul 20, 2017, at 11:03 AM, Rein Henrichs
wrote: This is about as good as you can do. The monad-loops package provides a variety of similar combinators, generally implemented in similar ways, but not this specific combinator. The downside of this combinator is that it is partial: it will run forever without producing anything if f never gives a Nothing.
On Thu, Jul 20, 2017 at 10:27 AM Jake
wrote: I have a function f :: a -> Maybe a that I want to feed into itself with some initial input until it returns Nothing.
untilNothing :: (a -> Maybe a) -> a -> a untilNothing f x = case f x of Just x' -> untilNothing f x' Nothing -> x
Is there a better way to do this? I feel like there is something more general going on with Monads being fed into themselves, but maybe I'm wrong. Thoughts? _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.