Ответ
Функциональное программирование (ФП) — это парадигма, где программы строятся на чистых функциях, избегая изменяемого состояния и побочных эффектов. Основные принципы:
- Чистые функции — одинаковые входные данные всегда дают одинаковый результат (без зависимостей от внешнего состояния).
- Неизменяемость (immutability) — данные не изменяются, а создаются новые.
- Функции высшего порядка — функции, принимающие/возвращающие другие функции.
Пример на 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 активно используют принципы ФП).