クロージャで合計する
重要性: 4
sum(a)(b) = a+b
のように動作する関数 sum
を書いてください。
正確にこの通り2つの括弧で指定します(タイプミスではありません)。
例:
sum(1)(2) = 3
sum(5)(-1) = 4
2つ目の括弧が動作するために、1つ目は関数を返さなければなりません。
このようになります:
function sum(a) {
return function(b) {
return a + b; // 外部のレキシカル環境から "a" を取る
};
}
alert( sum(1)(2) ); // 3
alert( sum(5)(-1) ); // 4