Somme avec des closures
importance: 4
Écrivez une fonction sum
qui fonctionne comme ceci :sum(a)(b) = a + b
.
Oui, exactement de cette façon, en utilisant des doubles parenthèses (ce n’est pas une faute de frappe).
Par exemple :
sum(1)(2) = 3
sum(5)(-1) = 4
Pour que les secondes parenthèses fonctionnent, les premières doivent renvoyer une fonction.
Comme ceci :
function sum(a) {
return function(b) {
return a + b; // prend "a" de l'environnement lexical externe
};
}
alert( sum(1)(2) ); // 3
alert( sum(5)(-1) ); // 4