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

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

Ответ

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

  1. Чистые функции – функция всегда возвращает одинаковый результат для одних и тех же входных данных и не имеет побочных эффектов.
  2. Неизменяемость (immutability) – данные не изменяются, а создаются новые.
  3. Функции высшего порядка – функции могут принимать другие функции как аргументы или возвращать их.
  4. Рекурсия – вместо циклов используется рекурсия для итераций.
  5. Ленивые вычисления – отложенное выполнение операций до необходимости.

Пример в Kotlin:

// Чистая функция
fun sum(a: Int, b: Int): Int = a + b

// Функция высшего порядка
fun applyOperation(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
    return operation(a, b)
}

val result = applyOperation(2, 3, ::sum) // 5