Middle
Co je to funkcionální programování?
sobes.tech AI
Odpověď od AI
Funkcionální programování je paradigma programování, ve kterém jsou výpočty považovány za vyhodnocení matematických funkcí, přičemž se vyhýbá měnitelnému stavu a měnitelným datům.
Hlavní principy:
- Čisté funkce: Funkce, které při stejných vstupních datech vždy vracejí stejný výsledek a nemají vedlejší účinky (například změnu vnějších proměnných, vstup/výstup).
- Neměnnost: Data se po vytvoření nemění. Jakákoli "změna" vytváří novou kopii dat.
- Funkce jako objekty první třídy: Funkce lze předávat jako argumenty, vracet z jiných funkcí a přiřazovat proměnným.
- Referenční transparentnost: Výraz může být nahrazen jeho hodnotou bez změny chování programu. To je přímo spojeno s čistými funkcemi.
Výhody:
- Předvídatelnost: Snadnější testování a ladění díky absenci vedlejších efektů.
- Paralelismus: Snadnější spouštění kódu paralelně, protože není sdílený měnitelný stav.
- Udržovatelnost: Kód je modulárnější a srozumitelnější.
Příklad v JavaScriptu:
// Nečistá funkce (mění vnější stav)
let total = 0;
function addToTotal(value) {
total += value;
return total;
}
// Čistá funkce (nemění vnější stav, vrací novou hodnotu)
function add(a, b) {
return a + b;
}
// Použití funkcí jako objektů první třídy (funkce jako argument)
function processArray(arr, handler) {
return arr.map(handler);
}
const numbers = [1, 2, 3];
const doubledNumbers = processArray(numbers, x => x * 2);
Ačkoliv JavaScript není striktně funkční jazyk, jeho schopnosti (jako jsou čisté funkce, metody pole map, filter, reduce) umožňují aplikovat principy funkcionálního programování. Ve vývoji frontendů je FP často využívána v knihovnách a rámcích (například Redux, React s hooks).