我正在阅读类别理论基础知识,并尝试理解Haskell在语义上赋予monad操作的名称。
我所遇到的所有资料都将return
称为单位地图,将join
称为乘法图(我可以将其命名为“join”)。对于>>=
或bind
,我甚至还没有找到一个在数学中常见的名称。相反,我遇到了翻转的形式,lift
或 - *,这反过来对我有意义。
实际问题(tldr):
答案 0 :(得分:9)
两个名字都来自编程,而不是数学。 return
被用作do
表达式的最后一个语句,使其看起来非常紧迫:do {do_something; return result}
。 bind
的名称来自do
翻译:{{1}}转换为action >>= \x -> something
,看起来do {x <- action; something}
绑定到x
返回的值}。
至于action
在数学界的模拟,google“Kleisli triple”。