Akh reader monad and monad transformer
npm install akh.readerThe ReaderT transformer, ReaderT, adds error control to a monad. The base type, Reader, provides error logic on its own.
``bashTo use as standalone package
$ npm install --save akh.reader
Usage
ReaderT and Reader implement the [Fantasy Land][fl] monad, functor, and applicative functor interfaces. ReaderT is also a monoid if the underlying type is.``js
// Reader monad
require('akh.reader').Reader
require('akh').Reader
// Reader monad transformer
require('akh.reader').ReaderT
require('akh').ReaderT
`
#### Reader.run(m, r), m.run(r)m
Perform a reader computation in environment r and return result
`js`
Reader.run(
Reader.asks(r => r.a).map(x => x * 2),
{ a: 10, b: 3 }
) === 20
#### ReaderT.run(t), t.run()Reader.run
Same as but for a monad transformer. Returns an Reader value inside of the inner monad.
#### Reader.askReaderT(M).ask
####
Return the current environment.
#### Reader.asks(f)ReaderT(M).asks(f)
#### f
Extract a value from the current environment using .
#### m.local(f)t.local(f)
#### f
Execute the current computation in a modified enviroment. maps current enviroment to a new enviroment.
To get started:
`bash``
$ cd akh-reader
$ npm install # install dev packages
$ npm test # run tests
[fl]: https://github.com/fantasyland/fantasy-land