fantasy-arrayt

0.0.0 • Public • Published

fantasy-arrayt

Monad transformer for Javascript arrays

npm install fantasy-arrayt

fantasy land compatible

Usage

Promise = require \fantasy-promises
ArrayT = require \fantasy-arrayt
 
ArrayPromise = ArrayT Promise
a = new ArrayPromise new Promise (resolve)->
    set-timeout resolve, 3000, [1 to 10]
 
a.map (* 5) .chain -> ArrayPromise Promise.of [it, -it]
.run.fork console.log # here be side-effects
# 3 seconds later...
#=> 5, -5, 10, -10, 15, -15,...

API

ArrayT

type ArrayT m a = { run :: m [a] }

Monad m => ArrayT m creates a monad encapsulating a list wrapped with the monad m.

map :: ArrayT m a → (a → b) → ArrayT m b chain :: ArrayT m a → (a → ArrayT m b) → ArrayT m b of :: a → ArrayT m a ap :: ArrayT m (a → b) → ArrayT m a → ArrayT m b concat :: ArrayT m a → ArrayT m a → ArrayT m a empty :: → ArrayT m a reduce :: ArrayT m b → (a → b → a) → a → m b reduceRight :: ArrayT m b → (a → b → a) → a → m b take :: ArrayT m a → Integer → ArrayT m a take :: ArrayT m a → Integer → ArrayT m a drop :: ArrayT m a → Integer → ArrayT m a tail :: ArrayT m a → ArrayT m a head :: ArrayT m a → m a initial :: ArrayT m a → ArrayT m a last :: ArrayT m a → m a reverse :: ArrayT m a → ArrayT m a len :: ArrayT m a → m Integer filter :: ArrayT m a → (a → Boolean) → ArrayT m a reject :: ArrayT m a → (a → Boolean) → ArrayT m a find :: ArrayT m a → (a → Boolean) → m a mkString :: ArrayT m Stringable → m String (yay duck typing) every :: ArrayT m a → (a → Boolean) → m Boolean some :: ArrayT m a → (a → Boolean) → m Boolean Licence

MIT. © 2013 Matt Brennan.

Dependencies (1)

Dev Dependencies (3)

Package Sidebar

Install

npm i fantasy-arrayt

Weekly Downloads

1

Version

0.0.0

License

MIT

Last publish

Collaborators

  • quarterto