Средний

Задача по JavaScript — Каррирование функции

Работа с массивами
Описание
Код

Реализуйте функцию curry, которая принимает на вход обычную функцию fn с фиксированным числом параметров и возвращает её каррированную версию.

Каррированная версия функции:
Принимает по одному аргументу за раз.
Возвращает новую функцию, пока не будет получено достаточное количество аргументов.
Как только собрано нужное количество аргументов — вызывает исходную функцию fn с этими аргументами и возвращает результат.

Пример 1:

function add(a, b) {
    return a + b;
}

const curriedAdd = curry(add);

curriedAdd(3)(4); // => 7

const alreadyAddedThree = curriedAdd(3);
alreadyAddedThree(4); // => 7

Пример 2:

function multiplyThreeNumbers(a, b, c) {
    return a * b * c;
}

const curriedMultiplyThreeNumbers = curry(multiplyThreeNumbers);

 curriedMultiplyThreeNumbers(4)(5)(6); // => 120

const containsFour = curriedMultiplyThreeNumbers(4);
const containsFourMulFive = containsFour(5);
containsFourMulFive(6); // => 120

Описание
Console
Perfomance
Очистить
Время выполнения: - мс
Запустить