UNPKG

@thi.ng/transducers

Version:

Collection of ~170 lightweight, composable transducers, reducers, generators, iterators for functional data transformations

19 lines (18 loc) 459 B
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 };