Для pipe функции выполняются слева направо: reduce передаёт накопленный результат следующей функции. Без функций возвращается исходное число.
Реализуй функцию (по типу pipe/compose), которая при первом вызове принимает набор функций, а при втором вызове — число, и последовательно применяет переданные функции к этому числу, передавая результат предыдущей функции в следующую. Например, функция inc, вложенная несколько раз, должна последовательно увеличивать число.
Для pipe функции выполняются слева направо: reduce передаёт накопленный результат следующей функции. Без функций возвращается исходное число.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для pipe функции выполняются слева направо: reduce передаёт накопленный результат следующей функции. Без функций возвращается исходное число.
Вариант для синхронных унарных функций:
const pipe = (...fns) => value =>
fns.reduce((result, fn) => fn(result), value);
const inc = x => x + 1;
pipe(inc, inc, inc)(2); // 5
pipe()(2); // 2
compose обычно применяет функции справа налево и использует reduceRight. Асинхронная цепочка требует отдельного контракта с await или Promise, а не этого синхронного варианта.