Sobes.tech
Junior — Middle

Можете ли да обясните основите на принципите и подходите на функционалното програмиране?

sobes.tech AI

Отговор от AI

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

Основни принципи и подходи на ФП:

  • Чисти функции: функцията винаги връща еднакъв резултат при еднакви входни данни и не променя външното състояние.
  • Непроменяемост (иммутабилност): данните не се променят след създаването си, вместо това се създават нови копия с промени.
  • Функции от по-висок ред: функции, които приемат други функции като аргументи или ги връщат.
  • Рекурсия вместо цикли: за повтаряне на операции често се използва рекурсия.
  • Липса на странични ефекти: функциите не трябва да променят външни променливи, файлове, бази данни и т.н.

Пример на C++ (използвайки ламбда функции):

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> числа = {1, 2, 3, 4, 5};
    
    // Функция от по-висок ред: подаване на ламбда към std::for_each
    std::for_each(числа.begin(), числа.end(), [](int n) {
        std::cout << n * 2 << " ";
    });
    
    return 0;
}

Тук не променяме оригиналния вектор, а просто прилагаме функция към всеки елемент за показване, което съответства на идеите на функционалния подход.