Funkcionální programování: Porovnání verzí
Smazaný obsah Přidaný obsah
Oprava 4 na č značka: editace z Vizuálního editoru |
m Doplnění rozdělení jazyků o jazyk F#. značka: editace z Vizuálního editoru |
||
Řádek 6:
V praxi je rozdíl mezi matematickou funkcí a představou funkce použité v [[Imperativní programování|imperativním programování]]. [[Turingův_stroj#Subrutiny|Imperativní funkce]] mohou mít [[Vedlejší účinek|vedlejší účinky]], které mění stav programu. Z toho důvodu postrádají [[referenční transparentnost]]: Stejné volání může vést k různým návratovým hodnotám v závislosti na stavu vykonávaného programu. Oproti tomu ve funkcionálním kódu návratové hodnoty funkcí záleží pouze na argumentech funkce, a tudíž dvě volání téže funkce se stejnými argumenty vrací vždy stejnou hodnotu. Eliminace vedlejších účinků může zjednodušit analýzu a pochopení chodu programu, což je jednou z klíčových motivací pro vývoj funkčního programování.
V praxi se můžeme setkat jak s [[Čistě funkcionální|čistě funkcionálními]] jazyky, které striktně vycházejí z teorie (např. FP, Haskell, Miranda, Hope), tak i s hybridními jazyky, které mohou obsahovat i prvky, které jsou v rozporu se základními principy funkcionálního programování. Například často citovaný „typicky“ funkcionální jazyk [[Lisp]] je ve skutečnosti jazykem hybridním, neboť umožňuje modifikovat hodnoty již definovaných proměnných. Mezi hybridní jazyky patří rovněž
== Použití ==
|