Monadický operátor

Z testwiki
Skočit na navigaci Skočit na vyhledávání

Monadický operátor je typový operátor vyššího druhu přiřazující libovolné monádě jinou monádu. Jedná se o endofunktorkategorii endofunktorů.

Monadický operátor T je druhu () poskytující pro každou monádu operace η a >>= nad TMa a navíc speciální funkci λ:MaTMa (někdy nazývanou "lift") takovou, že platí ηTM=ληM a λB(m>>=f)=(λAm)>>=(λBf). Ve funkcionálních jazycích, protože složení dvou monád obecně není monáda, se používají monadické operátory, chceme-li spojit funkčnost dvou monád do jedné. Jazyky jako Haskell nabízejí ke každé monádě také odpovídající operátor.

Lze snadno ukázat, že λ je přirozená transformace z M do TM. Pro libovolnou monádu F platí Ff=λm.mηf. Chceme dokázat, že pro libovolný morfismus f:AB platí λBMf=TMfλA.

V prvním případě máme

λBMf=λBλm.mηBf=λm.λAmλBηBf

Ve druhém pak přímo

TMfλA=λm.λAmλBηBf

Uvedený diagram tedy komutuje, pročež je λ přirozenou transformací. Šablona:Autoritní data

Šablona:Portály