MonadEx v1.1.0 Monad.Maybe
A monad that represents something or nothing.
The concept of having something vs. nothing is similar to having a value vs.
nil
.
Summary
Functions
Callback implementation of Monad.Behaviour.bind/2
An alias for some/1
Callback implementation of Monad.Behaviour.return/1
Wraps the value into a maybe monad
Unwraps the value from a maybe monad
Macros
Returns a “nothing” state
Macro that indicates if the maybe monad contains nothing
Macro that indicates if the maybe monad contains something
Types
The possible types of values that can occur (i.e. something and nothing).
Functions
Callback implementation of Monad.Behaviour.bind/2
.
If the monad contains a value, then the value is unwrapped and applied to
fun
.
For none
monads, none
is returned without evaluating fun
.
iex> m = some 42
iex> bind m, (& some &1 * 2)
%Monad.Maybe{type: :some, value: 84}
iex> bind none, (& some &1 * 2)
none
Callback implementation of Monad.Behaviour.return/1
.
Wraps the value in a maybe monad.
iex> return 42
%Monad.Maybe{type: :some, value: 42}
Wraps the value into a maybe monad.
iex> some 42
%Monad.Maybe{type: :some, value: 42}
Unwraps the value from a maybe monad.
Does not work with none
values, since they contain nothing.
iex> m = some 42
iex> unwrap! m
42
Macros
Macro that indicates if the maybe monad contains nothing.
This macro may be used in guard clauses.
iex> none? none
true
iex> none? some 42
false