Сума із замиканням
важливість: 4
Напишіть функцію sum
яка працює ось так: sum(a)(b) = a+b
.
Саме так, використовуючи подвійні дужки (це не друкарська помилка).
Наприклад:
sum
(
1
)
(
2
)
=
3
sum
(
5
)
(
-
1
)
=
4
Щоб другі дужки працювали, функція повинна повертати іншу функцію.
Ось так:
function
sum
(
a
)
{
return
function
(
b
)
{
return
a +
b;
// Бере "a" із зовнішнього лексичного середовища
}
;
}
alert
(
sum
(
1
)
(
2
)
)
;
// 3
alert
(
sum
(
5
)
(
-
1
)
)
;
// 4