The maybe package implements the Maybe
monad. It represents the explicit possiblity of absence of a value.
Methods for fmap()
, bind()
and join()
are provided for the maybe
S3 class as wrappers to functions in the package.
See also
maybe::maybe_map()
which implements fmap()
for maybe
.
maybe::and_then()
which implements bind()
for maybe
.
Other monads:
List
Examples
# The fmap operator corresponds to maybe::maybe_map().
maybe::just(1) %>>% `+`(1)
#> Just
#> [1] 2
maybe::nothing() %>>% `+`(1)
#> Nothing
# The bind operator corresponds to maybe::and_then().
maybe::just(1) %>-% \(x) maybe::just(x + 1)
#> Just
#> [1] 2
maybe::just(1) %>-% \(x) maybe::nothing()
#> Nothing
maybe::nothing() %>-% \(x) maybe::just(1)
#> Nothing