Skip to contents

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