Suma con clausuras
importancia: 4
Escriba la función sum
que funcione así: sum(a)(b) = a+b
.
Sí, exactamente de esta manera, usando paréntesis dobles (no es un error de tipeo).
Por ejemplo:
sum(1)(2) = 3 sum(5)(-1) = 4
Para que funcionen los segundos paréntesis, los primeros deben devolver una función.
Como esto:
function sum(a) { return function(b) { return a + b; // toma "a" del entorno léxico externo }; } alert( sum(1)(2) ); // 3 alert( sum(5)(-1) ); // 4