Transducer
JavaScript 🔴 SeniorDefinition
Transformations composables et independantes du type de collection. Combine map, filter, reduce en un seul passage sans creer de tableaux intermediaires.
Analogie
Un ouvrier polyvalent sur une chaine de montage qui fait tri + transformation + emballage en un seul passage au lieu de trois passages separes.
Exemple de code
const map = f => step => (acc, x) => step(acc, f(x));
const filter = pred => step => (acc, x) =>
pred(x) ? step(acc, x) : acc;
const xform = [filter(x => x % 2), map(x => x * 10)];
const transduce = xform.reduceRight(
(s, fn) => fn(s), (acc, x) => [...acc, x]
);
Cas d'usage
Traitement de grands jeux de donnees en un seul passage, eviter les allocations intermediaires.