在Haskell中,我们认为单子m
是具有以下结构的(Hask内函数)函数:
pure : a -> m a
bind : (a -> m b) -> (m a -> m b)
这与更为分类的方法形成了对比,后者通常以join
而不是bind
的角度进行思考。但是,bind
风格的monad承认join
风格的monad不具有这样的概括。特别是,我们可以考虑具有以下结构的成对的函子f
和m
:
pure : a -> m a
fdom : (a -> m b) -> (f a -> m b)
类别理论中的这类函子对有名称吗?
NB:我不完全确定如何在类别理论中全面说明此构造的细节,如果我将m
和f
设为任意函子而不是那么我想我可能需要从2类开始,以便甚至能够命名pure
和fdom
。我希望能找到一些有关相关概念的文章并开始阅读,但是monads的流行使这个概念异常难以用Google搜索。