Monad¶
monad.types.monad - The Monad Class.
-
class
monad.types.monad.
Monad
(value)[source]¶ Bases:
monad.types.applicative.Applicative
The Monad Class.
Implements bind operator
>>
and inverted bind operator<<
as syntactic sugar. It is equivalent to(>>=)
and(=<<)
in haskell, not to be confused with(>>)
and(<<)
in haskell.As python treats assignments as statements, there is no way we can overload
>>=
as a chainable bind, be it directly overloaded through__irshift__
, or derived by python itself through__rshift__
.The default implementations of
bind
,fmap
andjoin
are mutual recursive, subclasses should at least either overloadbind
, orfmap
andjoin
, or all of them for better performance.-
bind
(function)[source]¶ The bind operation.
function
is a function that maps from the underlying value to a monadic type, something like signaturef :: a -> M a
in haskell’s term.The default implementation defines
bind
in terms offmap
andjoin
.
-
fmap
(function)[source]¶ The fmap operation.
The default implementation defines
fmap
in terms ofbind
andunit
.
-