Currying
JavaScript 🟡 MidDéfinition
Transformer une fonction a N arguments en N fonctions a 1 argument chainables. Chaque appel retourne une nouvelle fonction jusqu'a ce que tous les arguments soient fournis.
Analogie
Un formulaire en plusieurs étapes : chaque page collecte une info, et le formulaire n'est soumis qu'a la dernière étape.
Exemple de code
const curry = (fn) => {
const arity = fn.length;
return function go(...args) {
return args.length >= arity
? fn(...args)
: (...more) => go(...args, ...more);
};
};
const add = curry((a, b, c) => a + b + c);
add(1)(2)(3); // 6
Cas d'usage
Configuration progressive de fonctions, création de variantes spécialisées, composition fonctionnelle.