
9 May
2008
9 May
'08
7:56 p.m.
Bryan O'Sullivan wrote:
Andrew Coppin wrote:
But here's a question: what is the purpose of the MonadPlus class?
It gives you a way of working with monads as monoids. Consider a Parsec example:
metasyntactic = text "foo" `mplus` text "bar" `mplus` text "baz"
You'll get back whichever one matched, in left-to-right-order, or mzero (a parse failure) if all of them fail.
...so it's a kind of choice operator? Run all actions until you get to one that succeeds and return the result from that?