Volná monáda: Porovnání verzí
Smazaný obsah Přidaný obsah
Rozšíření článku o matematický kontext |
m <source> -> <syntaxhighlight> (phab:T237267) |
||
Řádek 7: | Řádek 7: | ||
V [[Haskell]]u je typ volné monády nad funktorem ''f'' |
V [[Haskell]]u je typ volné monády nad funktorem ''f'' |
||
< |
<syntaxhighlight lang="haskell"> |
||
Free f a = Pure a | Roll (f (Free f a)) |
Free f a = Pure a | Roll (f (Free f a)) |
||
</syntaxhighlight> |
|||
</source> |
|||
Volné monády se ve funkcionálním programování používají k implementaci interpretů doménově specifických jazyků, protože poskytují syntakticky definovanou operaci bind. |
Volné monády se ve funkcionálním programování používají k implementaci interpretů doménově specifických jazyků, protože poskytují syntakticky definovanou operaci bind. |
Verze z 16. 4. 2020, 22:14
Volná monáda je v teorii kategorií monáda vytvořená z funktoru s nejvolnější možnou strukturou. Na rozdíl od "běžných" monád nereprezentuje žádný sekvenční výpočet a lze ji "rozbalit", tj. získat v ní "zabalenou" hodnotu.
Volná monáda je počátečním objektem v kategorii monád, tj. do každé monády z ní vede právě jeden morfismus. Morfismus je morfismem mezi monádami, pokud platí a .
Funkcionální programování
V Haskellu je typ volné monády nad funktorem f
Free f a = Pure a | Roll (f (Free f a))
Volné monády se ve funkcionálním programování používají k implementaci interpretů doménově specifických jazyků, protože poskytují syntakticky definovanou operaci bind.