Sobes.tech
Middle+
13

/** * Реализовать функцию compose, которая принимает * переменное количество функций и возвращает новую функцию. * Результат работы каждой функции передается в следующую. */ // Code here const square = (x) => x * x; const times2 = (x) => x * 2; const sum = (a, b) => a + b; console.clear(); console.log(compose(square, times2)(2) === square(times2(2))); console.log(compose(square, times2, sum)(3, 4) === square(times2(sum(3, 4))));

Компании, где спрашивали
Яндекс

Ответ от нейросети

sobes.tech AI

javascript function compose(...funcs) { return function(...args) { // Начинаем с вызова последней функции с исходными аргументами let result = funcsfuncs.length - 1; // Затем последовательно вызываем остальные функции справа налево for (let i = funcs.length - 2; i >= 0; i--) { result = funcsi; } return result; }; }

const square = (x) => x * x; const times2 = (x) => x * 2; const sum = (a, b) => a + b;

console.clear(); console.log(compose(square, times2)(2) === square(times2(2))); // true console.log(compose(square, times2, sum)(3, 4) === square(times2(sum(3, 4)))); // true


Функция `compose` принимает произвольное количество функций и возвращает новую функцию, которая при вызове передаёт аргументы в последнюю функцию, а затем результат каждой функции передаёт в предыдущую, реализуя композицию функций справа налево.