[Haskell-cafe] MonadPlus

Andrew Coppin andrewcoppin at btinternet.com
Fri May 9 15:56:03 EDT 2008


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?



More information about the Haskell-Cafe mailing list