diff --git a/README.md b/README.md new file mode 100644 index 0000000..810e15d --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +# kojima +a small functional/monad library + +# Usage +## Example +```js +import { Identity, Some, None, Left, Right, Ok, Err } from 'kojima' + +const i = Identity(1) +const thou = Identity(1) +i.bind(x => thou.map(y => x + y)) // Identity(2) + +const maybe = Some('thing') +maybe.isSome() // true +const isnt = maybe.bind(() => None).map(_x => 'other') // None +isnt.isSome() // false + +const either = Right('neutron') + +const value = either.match({ + Right(value) { + return value + }, + Left(value) { + console.error('oh no') + } +}) // 'neutron' + +const result = Ok('3:41am') +result.isOk() // true + +result.bind(() => new Error(-Infinity)) + .map(_x => '4:10am') + +result.isErr() // true +``` +