Monadický operátor
Author
Albert FloresMonadický operátor je typový operátor vyššího druhu přiřazující libovolné monádě jinou monádu. Jedná se o endofunktor v kategorii endofunktorů.
Monadický operátor T je druhu (\ast \rightarrow \ast) \rightarrow \ast \rightarrow \ast poskytující pro každou monádu operace \eta a >\. \. +more\. >\. \. = nad TMa a navíc speciální funkci \lambda: Ma \rightarrow TMa (někdy nazývanou "lift") takovou, že platí \eta_{TM} = \lambda \eta_M a \lambda_B(m >\. \. \. >\. \. = f) = (\lambda_A m) >\. \. \. >\. \. = (\lambda_B \circ f). 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 = \lambda m. +morem \gtrdot \eta f. Chceme dokázat, že pro libovolný morfismus f:A \rightarrow B platí \lambda_B \circ Mf = TMf \circ \lambda_A.
V prvním případě máme
\lambda_B \circ Mf = \lambda_B \circ \lambda m. m \gtrdot \eta_B f = \lambda m.\lambda_A m \gtrdot \lambda_B \eta_B f
Ve druhém pak přímo
TMf \circ \lambda_A = \lambda m.\lambda_A m \gtrdot \lambda_B \eta_B f
Uvedený diagram tedy komutuje, pročež je λ přirozenou transformací.