Функциональный JavaScriptКарированиеmedium

Uncurry

Допустим, нам дана карированная функция. Она принимает один аргумент, а возвращает функцию, которая снова принимает один аргумент. И так далее, пока последняя функция не вернет какой-то результат.

Например, карированная функция «с тремя аргументами» выглядит так.

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