Назад к задачам
Junior — Senior
5

Каскадный сумматор через цепочку вызовов

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо реализовать функцию‑сумматор, которая позволяет последовательно передавать числа через цепочку вызовов. Каждый вызов принимает одно значение и возвращает функцию, готовую принять следующее. Когда вызов делается без аргумента, функция выводит накопленную сумму в консоль.

Пример работы:

// Пример сумматора:
f(a)(b)(c)(d)   // -> a + b + c + d
f(a)(b)         // -> a + b
f(a)(b)()       // -> console.log(a + b)
f(a)(b)(c)(d)   // -> a + b + c + d

f(a)(b)(c)(d)

function f(x) {
  return (y) => 
    y ? f(x + y) : console.log(x);
}