@thi.ng/transducers
Version:
Collection of ~170 lightweight, composable transducers, reducers, generators, iterators for functional data transformations
19 lines (18 loc) • 459 B
JavaScript
import { isIterable } from "@thi.ng/checks/is-iterable";
import { iterator } from "./iterator.js";
import { partitionBy } from "./partition-by.js";
function partitionOf(sizes, src) {
return isIterable(src) ? iterator(partitionOf(sizes), src) : partitionBy(() => {
let i = 0, j = 0;
return () => {
if (i++ === sizes[j]) {
i = 1;
j = (j + 1) % sizes.length;
}
return j;
};
}, true);
}
export {
partitionOf
};