Real World Haskell
Bryan O'Sullivan John Goerzen Don Stewart pub. O'Reilly 2009 (OreillyAndAssociates
ISBN 9780596514983 (See IsbnThirteenBug
Also available on line: The newest, best, easiest and free-est way to learn HaskellLanguage
On p.362-364 of this book, the authors introduce the notion of mplus
withing a monad, with the comment on p.364 that The name mplus does not imply addition
I had found this very confusing as an implementation I was looking at did something which was not addition and I could not understand why.
Does anyone know why plus
is used for something which is not addition?
I have found this: http://www.haskell.org/haskellwiki/MonadPlus
Light is dawning. I have found the following on http://monads.haskell.cz/html/laws.html
Continuing to use the Maybe monad as an example, we see that the Maybe monad is an instance of M
instance MonadPlus Maybe where
mzero = Nothing
Nothing `mplus` x = x
x `mplus` _ = x
This identifies Nothing as the zero value and says that adding two Maybe values together gives the first value that is not Nothing. If both input values are Nothing, then the result of mplus is also Nothing.
So it is a logical addition rather than a numerical one.
It is good to talk things through even with people who are not listening yet. Another example of HowWikiWorks
The title is an oxymoron :-P thanks