Назад к задачам
Junior — Senior
5

Композиция функций через каррирование с произвольным числом аргументов

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

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

const a = (x) => x * 2;
const b = (x) => x * 2;
const c = (x) => x * 2;

// Ожидаемый результат: a(b(c(2))) // 16
// compose(a, b, c)(2);

Функция должна корректно работать с любым количеством функций (включая один) и возвращать результат последней функции в цепочке.