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