Transducer
JavaScript 🔴 SeniorDéfinition
Transformations composables et indépendantes du type de collection. Combine map, filter, reduce en un seul passage sans créer de tableaux intermédiaires.
Analogie
Un ouvrier polyvalent sur une chaîne de montage qui fait tri + transformation + emballage en un seul passage au lieu de trois passages séparés.
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 données en un seul passage, éviter les allocations intermédiaires.