intermediate

Чистые функции, каррирование и композиция

Чистота, побочные эффекты, частичное применение, каррирование и композиция небольших преобразований.

Чистые функции возвращают одинаковый результат для одинакового входа и избегают наблюдаемых побочных эффектов. Их легко тестировать, но не стоит гнаться за чистотой в ущерб читаемости.

Каррирование превращает `f(a, b)` в `f(a)(b)` — полезно для переиспользуемой конфигурации. Композиция связывает малые преобразования: `const normalize = pipe(trim, toLowerCase)`.

Функция, читающая `Date.now()`, мутирующая вход или трогающая глобалы, не чистая.

На интервью объясняйте концепцию на конкретном примере и называйте поведение рантайма, которое проверяют.

Типовые ошибки: путать похожие API и забывать edge cases в live coding.

Компромисс часто между ясностью и производительностью или между безопасностью и удобством.

Чеклист:

  • Проверяйте побочные эффекты перед словом «чистая».
  • Держите поток данных явным.
  • Избегайте излишне умных point-free цепочек.