Real World Haskell Bryan O'Sullivan John Goerzen Don Stewart pub. O'Reilly 2009 (
OreillyAndAssociates) (
AnimalBook)
ISBN 9780596514983 (See
IsbnThirteenBug)
http://oreilly.com/catalog/9780596514983/
Also available on line: The newest, best, easiest and free-est way to learn
HaskellLanguage.
http://book.realworldhaskell.org/read/
Plus in
HaskellLanguage monads.
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
onadPlus:
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.
--
JohnFletcher
The title is an oxymoron :-P
thanks
CategoryHaskell CategoryBook