什么是Haskell的monad变换器的分类术语?

Oma*_*ena 30 haskell monad-transformers category-theory

作为一名数学学生,我在Haskell学习monads时所做的第一件事就是检查它们是否真的是我知道的monad.但后来我了解了monad变换器,而那些似乎并不是类别理论研究的东西.

特别是我希望它们与分配法有关,但它们似乎真正不同:monad变换器预计适用于任意monad,而分配法则是monad和特定其他monad之间的事情.

另外,在看单子变压器的通常实施例中,而MaybeT m构成mMaybe,StateT m不是的组合物mState任一次序.

所以我的问题是什么是分类语言中的monad变换器?

scl*_*clv 8

Monad变压器在数学上并不十分令人愉悦.但是,我们可以从免费的monad中获得好的(co)产品,更常见的是理想的monad:参见Ghani和Uustalu的"理想Monads的副产品":http://citeseerx.ist.psu.edu/viewdoc/summary?doi = 10.1.1.4.2698

  • 这是正确的(对于那些没有读过sclv的人来说意味着对于任何理想的monad你都会得到monad变换器,它将monad n发送给m和n的副产品(monad类别),它有一个不错的结构),但我的意思是虽然它给出了monad变换器的这些例子,但它没有谈到monad变换器的定义. (2认同)