UNPKG

@thi.ng/transducers

Version:

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

22 lines (21 loc) 444 B
import { SYSTEM } from "@thi.ng/random/system"; import { compR } from "./compr.js"; import { __iter } from "./iterator.js"; function sample(...args) { const iter = __iter(sample, args); if (iter) { return iter; } const prob = args[0]; const rnd = args[1] || SYSTEM; return (rfn) => { const r = rfn[2]; return compR( rfn, (acc, x) => rnd.probability(prob) ? r(acc, x) : acc ); }; } export { sample };