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;
}
Тук не променяме оригиналния вектор, а просто прилагаме функция към всеки елемент за показване, което съответства на идеите на функционалния подход.