wonka
Version:
A fast push & pull stream library for Reason, loosely following the [callbag spec](https://github.com/callbag/callbag)
28 lines (24 loc) • 884 B
JavaScript
;
var Block = require("bs-platform/lib/js/block.js");
var Curry = require("bs-platform/lib/js/curry.js");
function scan(f, seed) {
return (function (source) {
return (function (sink) {
var acc = /* record */[/* contents */seed];
return Curry._1(source, (function (signal) {
var tmp;
if (typeof signal === "number") {
tmp = /* End */0;
} else if (signal.tag) {
acc[0] = f(acc[0], signal[0]);
tmp = /* Push */Block.__(1, [acc[0]]);
} else {
tmp = /* Start */Block.__(0, [signal[0]]);
}
return sink(tmp);
}));
});
});
}
exports.scan = scan;
/* No side effect */