Допустим, нам дана карированная функция. Она принимает один аргумент, а возвращает функцию, которая снова принимает один аргумент. И так далее, пока последняя функция не вернет какой-то результат.
Например, карированная функция «с тремя аргументами» выглядит так.
const sum = a => b => c => a + b + c;
Ваша задача — реализовать функцию uncurry
, принимающую произвольную карированную функцию и возвращающую обычную функцию, которая принимает всн аргументы сразу.
const sum = a => b => c => a + b + c; const plainSum = uncurry(sum); console.log(sum(1)(2)(3)); // 6 console.log(plainSum(1, 2, 3)); // 6