UNPKG

@thi.ng/transducers

Version:

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

21 lines (20 loc) 542 B
import { identity } from "@thi.ng/compose/identity"; import { count } from "./count.js"; import { groupByMap } from "./group-by-map.js"; import { $$reduce } from "./reduce.js"; function sortedFrequencies(...args) { const res = $$reduce(sortedFrequencies, args); if (res) return res; const [init, complete, reduce] = groupByMap({ key: args[0] || identity, group: count() }); return [ init, (acc) => [...complete(acc)].sort((a, b) => b[1] - a[1]), (acc, x) => reduce(acc, x) ]; } export { sortedFrequencies };