Volná monáda: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
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''
<source lang="haskell">
<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.