Что такое функциональное программирование

Ответ

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

  1. Чистые функции — одинаковые входные данные всегда дают одинаковый результат (без зависимостей от внешнего состояния).
  2. Неизменяемость (immutability) — данные не изменяются, а создаются новые.
  3. Функции высшего порядка — функции, принимающие/возвращающие другие функции.

Пример на JS:

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

// Неизменяемость
const arr = [1, 2, 3];
const newArr = [...arr, 4]; // вместо arr.push(4)

// Функция высшего порядка
const multiplyBy = (factor) => (num) => num * factor;
const double = multiplyBy(2);
console.log(double(5)); // 10

Популярные языки: Haskell, Elm, частично поддерживается в JS (React с Redux активно используют принципы ФП).