Sobes.tech
Назад к вопросам
Middle+
5

<script> function sum(valueA) { throw 'Not implemented' } console.log(sum(1)()); // 1 console.log(sum(1)(2)()); // 3 console.log(sum(1)(2)(-3)()); // 0 </script>

Компании, где спрашивали
Mayflower

Ответ от нейросети

sobes.tech AI

Функция sum должна поддерживать цепочку вызовов с аргументами и завершаться вызовом без аргументов, который возвращает сумму всех переданных чисел. Для этого можно использовать замыкание, где накапливается сумма, и возвращать функцию, которая либо принимает следующий аргумент, либо, если вызвана без аргументов, возвращает результат.

Пример реализации на JavaScript:

function sum(valueA) {
  let total = valueA;
  function inner(valueB) {
    if (arguments.length === 0) {
      return total;
    }
    total += valueB;
    return inner;
  }
  return inner;
}

console.log(sum(1)());       // 1
console.log(sum(1)(2)());    // 3
console.log(sum(1)(2)(-3)()); // 0