wonka
Version:
A fast push & pull stream library for Reason, loosely following the [callbag spec](https://github.com/callbag/callbag)
31 lines (25 loc) • 879 B
JavaScript
import * as Block from "bs-platform/lib/es6/block.js";
import * as Curry from "bs-platform/lib/es6/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);
}));
});
});
}
export {
scan ,
}
/* No side effect */