Что произойдёт, если передать пустой список функций в compose?

Для композиции унарных функций пустой набор обычно возвращает identity: функцию x => x. Реальный результат зависит от реализации 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 нужно закрепить контрактом, а не предполагать для любого кода.

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

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

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

Подробнее