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

compose применяет функции справа налево. Для унарных синхронных функций это удобно выразить через reduceRight; пустая композиция возвращает аргумент.

Короткий ответ

Что ответить на собеседовании

compose применяет функции справа налево. Для унарных синхронных функций это удобно выразить через reduceRight; пустая композиция возвращает аргумент.

Подробный разбор

Ответ с пояснениями

compose применяет функции справа налево. Для унарных синхронных функций это удобно выразить через reduceRight; пустая композиция возвращает аргумент.

function compose(...functions) {
  return value => functions.reduceRight((result, fn) => fn(result), value);
}
const calculate = compose(x => x * 2, x => x + 3);
console.log(calculate(4)); // 14

Контракт здесь — один входной аргумент, без специальной привязки this и автоматического ожидания Promise. Если функции асинхронные, нужна цепочка then или await; обычный reduceRight передаст Promise следующей функции как значение.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее