Sobes.tech
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.