reduced

0.2.0 • Public • Published

reduced

Some notes:

  • pull-style lazy sequences
  • a set of combinators for them
  • modelled after clojure/reducers
  • plays well with arrays, promises and other monads (theoretically)
  • see specs for docs

Brief example:

{equal} = require 'assert'
{fold, take, repeat, reduced} = require 'reduced'

# compute a sum of a seq
sum = (seq) ->
  fold(seq, ((v, s) -> v + s), 0)

# sum of a hundred of 1s
sum100 = sum(take repeat(1), 100)

reduced(sum100).then (v) ->
  equal v, 100

reduced is a parametrized module (functor)

You can use reduced with other types of monads — there's makeModule function which created another instance of reduced module.

var reducedForStreams = reduced.makeModule(function(stream) {
  // make seq from a stream
});

That way reducedForStreams would have exactly the same function available as original reduce module but those functions will work only on streams.

Dependencies (1)

Dev Dependencies (3)

Package Sidebar

Install

npm i reduced

Weekly Downloads

0

Version

0.2.0

License

MIT

Last publish

Collaborators

  • andreypopp