Какой опыт функционального программирования

«Какой опыт функционального программирования» — вопрос из категории Паттерны, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Функциональное программирование (ФП) — это стиль, где код строится на чистых функциях, иммутабельности и избегании побочных эффектов.

Опыт:

  • Использовал map, filter, reduce для работы с массивами.
  • Писал чистые функции без мутаций (например, работа с Redux-редьюсерами).
  • Применял библиотеки типа Lodash для композиции функций (_.flow, _.pipe).
  • Работал с React, где ФП-принципы ключевые (компоненты как функции, иммутабельность через useState).

Пример:

// Чистая функция
const sum = (a, b) => a + b;

// Композиция
const processData = data => data
  .filter(item => item.active)
  .map(item => ({ ...item, total: item.price * item.quantity }))
  .reduce((acc, item) => acc + item.total, 0);

Для сложных сценариев использовал Ramda или писал кастомные утилиты.