Kdy se používá funkcionální programování?

Koncepty programovacích paradigmat

Eleanor Thomas

Senior Data Analytics Engineer

Využití funkcionálního programování

  • Strojové učení, hluboké učení, umělá inteligence
  • Analýza a zpracování velkých datových sad
  • Aplikace v datovém inženýrství (např. ve Scale a Clojure)

Zpracování dat

Koncepty programovacích paradigmat

Příklad funkcionálního programování

def process_data(raw_data):
    processed_data = raw_data

    ... further processing steps here! ...

    return processed_data
  • Funkce přijímá vstupní data uložená v raw_data
  • Funkce vytváří novou proměnnou pro výstupní data nazvanou processed_data
  • Funkce provede konzistentní sadu kroků pro další zpracování dat
  • Funkce vrátí processed_data
Koncepty programovacích paradigmat

Výhody a nevýhody funkcionálního programování

VÝHODY

  • Čisté funkce se snadněji čtou a ladí
  • Čisté funkce se snadněji testují
  • Méně neočekávaných vedlejších efektů v kódu
  • Čisté funkce jsou snadno znovupoužitelné napříč projekty
  • Různé funkce lze spouštět paralelně pro vyšší výkon

NEVÝHODY

  • Obtížné si zvyknout na toto paradigma; "vedlejší efekty" (zápis do souborů atd.) jsou přitom v programování běžnou potřebou
  • Méně odborníků, nástrojů a frameworků pro funkcionální programování
  • Strmá křivka učení a méně vzdělávacích zdrojů
  • Vyšší využití paměti omezuje použitelnost
Koncepty programovacích paradigmat

Funkcionální a deklarativní programování

  • Funkcionální programování je typ deklarativního programování
  • Deklarativní programování: říkáme počítači _co_ má udělat, ne jak to má udělat
  • Funkcionální programování je jen jedním typem deklarativního programování
  • Programátor určuje, které funkce se mají spustit, nikoli přesné kroky

Funkcionální programování je deklarativní

Koncepty programovacích paradigmat

Pojďme si procvičit!

Koncepty programovacích paradigmat

Preparing Video For Download...