@thi.ng/transducers
Version:
Collection of ~170 lightweight, composable transducers, reducers, generators, iterators for functional data transformations
23 lines (22 loc) • 527 B
JavaScript
import { frequencies } from "./frequencies.js";
import { $$reduce } from "./reduce.js";
function normFrequenciesAuto(...args) {
const res = $$reduce(normFrequenciesAuto, args);
if (res !== void 0) return res;
const [init, complete, reduce] = frequencies(...args);
let norm = 0;
return [
init,
(acc) => {
acc = complete(acc);
for (let p of acc) {
acc.set(p[0], p[1] / norm);
}
return acc;
},
(acc, x) => (norm++, reduce(acc, x))
];
}
export {
normFrequenciesAuto
};