Middle
Čo je to funkcionálne programovanie?
sobes.tech AI
Odpoveď od AI
Funkcionálne programovanie je paradigma programovania, v ktorej sa výpočty považujú za hodnotenie matematických funkcií, pričom sa vyhýba meniteľnému stavu a meniteľným údajom.
Hlavné princípy:
- Čisté funkcie: Funkcie, ktoré pri rovnakých vstupných údajoch vždy vracajú rovnaký výsledok a nemajú vedľajšie účinky (napríklad zmena vonkajších premenných, vstup/výstup).
- Nezmeniteľnosť: Dáta sa nemenia po ich vytvorení. Akákoľvek "zmena" vytvára novú kópiu dát.
- Funkcie ako objekty prvej triedy: Funkcie je možné odovzdávať ako argumenty, vracať z iných funkcií a priraďovať k premenným.
- Referenčná transparentnosť: Výraz môže byť nahradený jeho hodnotou bez zmeny správania programu. To je priamo spojené s čistými funkciami.
Výhody:
- Predvídateľnosť: Jednoduchšie na testovanie a ladenie kvôli absencii vedľajších účinkov.
- Paralelizmus: Jednoduchšie spúšťanie kódu paralelne, pretože nie je zdieľaný meniteľný stav.
- Údržba: Kód sa stáva modulárnejším a zrozumiteľnejším.
Príklad v JavaScripte:
// Nečistá funkcia (mení vonkajší stav)
let total = 0;
function addToTotal(value) {
total += value;
return total;
}
// Čistá funkcia (nemení vonkajší stav, vracia novú hodnotu)
function add(a, b) {
return a + b;
}
// Použitie funkcií ako objektov prvej triedy (funkcia ako argument)
function processArray(arr, handler) {
return arr.map(handler);
}
const numbers = [1, 2, 3];
const doubledNumbers = processArray(numbers, x => x * 2);
Hoci JavaScript nie je prísne funkcionálny jazyk, jeho schopnosti (ako čisté funkcie, metódy polí map, filter, reduce) umožňujú aplikovať princípy funkcionálneho programovania. Vo vývoji frontendov sa FP často používa v knižniciach a rámcoch (napríklad Redux, React s hooks).