Какие знаешь концепции функционального программирования

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

Ответ

Функциональное программирование (ФП) основывается на нескольких ключевых принципах:

  1. Чистые функции – функции без побочных эффектов, которые для одних и тех же входных данных всегда возвращают одинаковый результат.
    // Чистая функция
    const add = (a, b) => a + b;
  1. Неизменяемость (Immutability) – данные не изменяются, а создаются новые.
    const arr = [1, 2, 3];
    const newArr = [...arr, 4]; // вместо arr.push(4)
  1. Функции высшего порядка – функции, принимающие или возвращающие другие функции.
    const map = (arr, fn) => arr.map(fn);
  1. Рекурсия – замена циклов вызовами функции самой себя.

  2. Композиция функций – объединение функций в цепочки.

    const compose = (f, g) => x => f(g(x));
  1. Каррирование – преобразование функции с множеством аргументов в цепочку функций с одним аргументом.
    const add = a => b => a + b;
    add(2)(3); // 5

Эти концепции помогают писать предсказуемый, тестируемый и декларативный код.