Junior — Middle
Můžete vysvětlit základy principů a přístupů funkcionálního programování?
sobes.tech AI
Odpověď od AI
Funkcionální programování (FP) je programovací paradigma založené na používání funkcí jako hlavních stavebních bloků a na vyhýbání se změnám stavu a vedlejším efektům.
Hlavní principy a přístupy FP:
- Čisté funkce: funkce vždy vrací stejný výsledek při stejných vstupních datech a nemění vnější stav.
- Neměnnost (immutabilita): data se po vytvoření nemění, místo toho jsou vytvářeny nové kopie se změnami.
- Funkce vyššího řádu: funkce, které přijímají jiné funkce jako argumenty nebo je vracejí.
- Rekurze místo cyklů: rekurze se často používá k opakování operací.
- Nepřítomnost vedlejších efektů: funkce by neměly měnit vnější proměnné, soubory, databáze atd.
Příklad v C++ (použití lambda funkcí):
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> čísla = {1, 2, 3, 4, 5};
// Funkce vyššího řádu: předání lambda do std::for_each
std::for_each(čísla.begin(), čísla.end(), [](int n) {
std::cout << n * 2 << " ";
});
return 0;
}
Zde neměníme původný vektor, pouze na každý prvek aplikuje funkci pro zobrazení, což odpovídá principům funkcionálního přístupu.