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.

    Keywords

    none

    Install

    npm i reduced

    DownloadsWeekly Downloads

    3

    Version

    0.2.0

    License

    MIT

    Last publish

    Collaborators

    • avatar