Junior — Middle
Môžete vysvetliť základy princípov a prístupov funkcionálneho programovania?
sobes.tech AI
Odpoveď od AI
Funkcionálne programovanie (FP) je paradigma programovania založená na používaní funkcií ako hlavných stavebných blokov a na vyhýbaní sa zmene stavu a vedľajším efektom.
Hlavné princípy a prístupy FP:
- Čisté funkcie: funkcia vždy vráti rovnaký výsledok pri rovnakých vstupných dátach a nemení vonkajší stav.
- Nezmeniteľnosť (immutability): údaje sa nemenia po ich vytvorení, namiesto toho sa vytvárajú nové kópie so zmenami.
- Funkcie vyššieho rádu: funkcie, ktoré prijímajú iné funkcie ako argumenty alebo ich vracajú.
- Rekurzia namiesto slučiek: rekurzia sa často používa na opakovanie operácií.
- Absencia vedľajších efektov: funkcie by nemali meniť vonkajšie premenné, súbory, databázy atď.
Príklad v C++ (použitím lambda funkcií):
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> čísla = {1, 2, 3, 4, 5};
// Funkcia vyššieho rádu: odovzdanie lambda do std::for_each
std::for_each(čísla.begin(), čísla.end(), [](int n) {
std::cout << n * 2 << " ";
});
return 0;
}
Tu nemeníme pôvodný vektor, iba aplikujeme funkciu na každý prvok na zobrazenie, čo zodpovedá ideám funkcionálneho prístupu.