pull-scan

Scan algorithm for pull streams

Usage no npm install needed!

<script type="module">
  import pullScan from 'https://cdn.skypack.dev/pull-scan';
</script>

README

pull scan Build Status

Scan algorithm for pull streams. It's like reduce, but emits intermediate values. So it's more like map but with an accumulator argument.

example

var test = require('tape')
var S = require('pull-stream')
var scan = require('../')

test('works given initial state', function (t) {
    t.plan(1)
    S(
        S.values([1,2,3]),

        scan(function (acc, n) {
            return acc + n
        }, 10),

        S.collect(function (err, data) {
            t.deepEqual(data, [11,13,16], 'should use init state argument')
        })
    )
})

test('use default init state', function (t) {
    t.plan(1)
    S(
        S.values([1,2,3]),

        scan(function (acc, n) {
            return acc + n
        }),

        S.collect(function (err, data) {
            t.deepEqual(data, [1,3,6],
                'should use first val as default state')
        })
    )
})