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` принимает произвольное количество функций и возвращает новую функцию, которая при вызове передаёт аргументы в последнюю функцию, а затем результат каждой функции передаёт в предыдущую, реализуя композицию функций справа налево.