maeby
the maybe monad - in JS - with some adornments
about
This is mostly just a fun project to learn more about monads. The exposed
interface tries to stick closely to a textbook monad interface, but adds a bit
of convenience to accommodate the syntax and semantics of JS.
installation
$ npm add maeby
$ yarn add maeby
example
import { maybe, just, nothing } from 'maeby'
const flakyCaps = name =>
Math.random() > 0.5 ? name.toUpperCase() : null
maybe(flakyCaps('hey'))
.bind(curtGreeting => `${curtGreeting}! how's it goin?`)
.unwrap()
api
maybe (value: T): Maybe<T>
just (value: T): Maybe<T>
nothing (): Maybe<T>
bind<T, U> (instance: Maybe<T>, transform: (value: T) => (Maybe<U> | U)): Maybe<U>
js <T> (m: Maybe<T>): ?T