comonad(余单子/对偶单子):范畴论与函数式编程中的概念,是 monad(单子) 的对偶结构。直观上,monad 常用于“把值放进某种上下文并进行组合”;comonad 则常用于“从上下文中取出/聚焦值,并在上下文中扩展计算”(例如数据流、网格/环境、上下文依赖计算等)。
(也常见于 Haskell 等语言的类型类语境中。)
/ˈkoʊmənæd/
A comonad lets you compute with context.
comonad 让你能够在“上下文”中进行计算。
In category theory, a comonad can be defined as an endofunctor equipped with counit and comultiplication satisfying dual monad laws.
在范畴论中,comonad 可定义为一个自函子,并配有余单位(counit)与余乘法/余合成(comultiplication),满足与单子定律对偶的公理。
co- 表示“对偶、相反、伴随”的意味(在数学术语中常用于表示“对偶化”),monad 源自希腊语 monas(“单一体、单位”)。因此 comonad 字面可理解为“单子的对偶结构”。