Как можно реализовать каррирование с возможностью передачи нескольких аргументов, а не только одного?

Как можно реализовать каррирование таким образом, чтобы оно было многопеременным, а не ограничивалось одной переменной? <br/> <a href="https://jsfiddle.net/ej1qz540/" rel="nofollow">https://jsfiddle.net/ej1qz540/</a> <br/> <br/> <pre><code class="javascript">function carry(num) {
  function fn(...rest) {
    num += rest.reduce((a, b) =&gt; a + b, 0)
    console.log('num', num)
    return fn
  }
  
  return fn
}

const c = carry(10)(20) // Ожидаемый результат: 30

const foo = c(20) // Ожидаемый результат: 50
const bar = c(30) // Ожидаемый результат: 60</code></pre>
  • 1 мая 2024 г. 12:40
Ответы на вопрос 1
В этом примере функция `carry` принимает начальное значение `num` и возвращает внутреннюю функцию `fn`. Внутренняя функция `fn` принимает массив аргументов `rest` с использованием оператора расширения `...`, складывает их с текущим значением `num` и возвращает себя же. 

Таким образом, мы можем вызывать функцию `carry` с начальным значением `num` и последующими аргументами для сложения. Пример использования показывает, как мы можем использовать каррирование для передачи нескольких аргументов и получения результатов поэтапно.
Похожие вопросы