方永、南天紫云

道亦有道

理解单子是自函子范畴上的幺半群(二)
2024年08月29日

函子是范畴间的态射。

若存在一个范畴,它的对象是范畴,那么它的态射可以称之为函子。

在这些函子中,有一类函子,它将一个范畴映射到了自身,那么这些函子可称之为自函子。

而这些自函子,仍可成为一个范畴的对象。这个对象是自函子的范畴可称之为自函子范畴。

回顾一下,对象和态射组成了范畴。以范畴为对象的范畴,其态射名为函子。以函子为对象的范畴, 其态射名为自然变换。

那么自函子范畴上的态射,或者说自然变换,按照范畴的定义,存在一个单位态射,即将自函子映射到自身的态射,这个命名为 unit

若这些自然变换(自函子范畴上的态射)中存在一种T² → T(符号T²表示T ∘ T,其中 ∘ 是我们态射的组合运算符)的 自然变换,那么暂且称之为 flatMap

在自函子范畴上选取一个对象,命名为 F

由 F 、unit 、 flatMap 这三者组成了 Monad,即单子, M = (F, unit, flatMap)

由此可见,单子是一个在自函子范畴上选定了某个对象和满足特定规则的态射的结构。