Для композиции унарных функций пустой набор обычно возвращает identity: функцию x => x. Реальный результат зависит от реализации compose.
Что произойдёт, если передать пустой список функций в compose?
Для композиции унарных функций пустой набор обычно возвращает identity: функцию x => x. Реальный результат зависит от реализации compose.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что произойдёт, если передать пустой список функций в compose?
Ответ
Для композиции унарных функций пустой набор обычно возвращает identity: функцию x => x. Реальный результат зависит от реализации compose.
Вариант с начальным значением корректно поддерживает пустой список:
const compose = (...fns) => x =>
fns.reduceRight((value, fn) => fn(value), x);
compose()(42); // 42
Если внутри используется reduceRight по самим функциям без начального значения, пустой массив приведёт к TypeError. Поэтому identity нужно закрепить контрактом, а не предполагать для любого кода.