Да, условие if не нарушает чистоту. Важны детерминированный результат и отсутствие наблюдаемых побочных эффектов, а не форма управления потоком.
[имя] спросил: остаётся ли функция чистой, если внутри неё есть условие if?
Да, условие if не нарушает чистоту. Важны детерминированный результат и отсутствие наблюдаемых побочных эффектов, а не форма управления потоком.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Да, условие if не нарушает чистоту. Важны детерминированный результат и отсутствие наблюдаемых побочных эффектов, а не форма управления потоком.
Функция x => x > 0 ? x : 0 остаётся чистой. If, читающий глобальную изменяемую переменную, или ветка, меняющая внешний объект, уже создаёт проблему. Проверять нужно источники данных и последствия выполнения каждой ветви.