intermediate
Чистые функции, каррирование и композиция
Чистота, побочные эффекты, частичное применение, каррирование и композиция небольших преобразований.
Чистые функции возвращают одинаковый результат для одинакового входа и избегают наблюдаемых побочных эффектов. Их легко тестировать, но не стоит гнаться за чистотой в ущерб читаемости.
Каррирование превращает `f(a, b)` в `f(a)(b)` — полезно для переиспользуемой конфигурации. Композиция связывает малые преобразования: `const normalize = pipe(trim, toLowerCase)`.
Функция, читающая `Date.now()`, мутирующая вход или трогающая глобалы, не чистая.
На интервью объясняйте концепцию на конкретном примере и называйте поведение рантайма, которое проверяют.
Типовые ошибки: путать похожие API и забывать edge cases в live coding.
Компромисс часто между ясностью и производительностью или между безопасностью и удобством.
Чеклист:
- Проверяйте побочные эффекты перед словом «чистая».
- Держите поток данных явным.
- Избегайте излишне умных point-free цепочек.