Functional programming 为什么“join”也称为“mu”?

Functional programming 为什么“join”也称为“mu”?,functional-programming,monads,idris,Functional Programming,Monads,Idris,我在Idris文档中注意到,join也称为flatten和mu Idris> :doc join Prelude.Monad.join : Monad m => m (m a) -> m a Also called flatten or mu The function is Total IIRC,mu(或μ)用作递归数据类型的绑定器。在此上下文中,我以前从未见过mu。这方面的背景是什么?非常简短的回答:范畴理论 中等长度的答案: 如果您查看Wikipedia

我在Idris文档中注意到,
join
也称为
flatten
mu

Idris> :doc join
Prelude.Monad.join : Monad m => m (m a) -> m a
    Also called flatten or mu

    The function is Total

IIRC,
mu
(或μ)用作递归数据类型的绑定器。在此上下文中,我以前从未见过
mu
。这方面的背景是什么?

非常简短的回答:范畴理论

中等长度的答案: 如果您查看Wikipedia上的(很抱歉,没有复制它,因为SO上没有LaTeX支持),您将看到“mu”和“eta”用作两个“”,其中mu是从T2到T的一个(如果您查看类型签名,它从(
m(ma)
ma


深入的回答:(参见“自然转换”)

mu是否代表
一元单位
?我不这么认为,我认为是希腊字母μ。