Junior — Middle
Tudná elmagyarázni a funkcionális programozás alapelveit és megközelítéseit?
sobes.tech MI
Válasz az MI-től
A funkcionális programozás (FP) egy olyan programozási paradigma, amely a funkciók fő építőkövekként való használatán alapul, és elkerüli az állapot változtatását és a mellékhatásokat.
A FP fő elvei és megközelítései:
- Tiszta függvények: egy függvény mindig ugyanazt az eredményt adja ugyanazon bemeneti adatok esetén, és nem változtatja meg a külső állapotot.
- Változtathatatlanság (immutability): az adatok nem változnak a létrehozásuk után, helyette új másolatokat hozunk létre módosításokkal.
- Függvények magasabb rendűek: olyan függvények, amelyek más függvényeket fogadnak el argumentumként vagy adnak vissza.
- Rekurzió ciklusok helyett: a rekurziót gyakran használják műveletek ismétlésére.
- Mellékhatások hiánya: a függvények nem módosíthatják a külső változókat, fájlokat, adatbázisokat stb.
Példa C++-ban (lambda függvények használatával):
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> számok = {1, 2, 3, 4, 5};
// Magasabb rendű függvény: lambda átadása a std::for_each-nek
std::for_each(számok.begin(), számok.end(), [](int n) {
std::cout << n * 2 << " ";
});
return 0;
}
Itt nem módosítjuk az eredeti vektort, hanem egyszerűen alkalmazunk egy függvényt minden elemre a megjelenítéshez, ami összhangban van a funkcionális megközelítés elveivel.