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