retour au cours

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