(对不起,我既愚蠢又没受过教育,所以这可能是一个荒谬的问题。)
我刚开始看J,他们使用术语“一元”和“二元”来表示(在我看来)一元和二元运算符。为什么要这样做,它与我听说过这个术语(Haskell)的其他地方有什么关系?我猜它们是不相关的同音异义词,但我不确定。
发布于 2012-01-11 01:23:09
它们是不相关的;C. A. McCann指出了两者的词源。
在任何情况下,Haskell的使用,当然,来自范畴理论,并被认为是一个独立的创造与other senses of monad无关。
事实上,“一元”的J意义可以追溯到APL,它比Haskell早四分之一个世纪!我认为它也可能早于该术语的范畴理论的使用。
发布于 2012-01-11 01:24:11
它们是不相关的,除非它们都源于希腊语中"one“的词根。一元函数和二元函数实际上是一元函数和二元函数的术语。具体地说,它们是从希腊派生的等价物--使用-adic而不是-ary。以单词"triad“为例,该词也源于希腊语。
Haskell使用的Monad有an unclear etymology,但可能是从"monoid“派生出来的。
不过,我鼓励在Haskell中使用源自拉丁语的"n-ary“术语。从技术上讲,Haskell中的所有函数都有一个参数,因为使用了currying,所以使用从希腊派生的形式可能会产生任意数量的混乱。
发布于 2012-01-11 06:24:50
Adicity (或adinity)是的另一种选择,使用希腊数字根而不是拉丁语:
单子在哲学、宗教、生物学、范畴论和函数式编程中的各种含义都是从其“单位”的字面表示中独立派生出来的。Haskell项可能源于,这是一种相当于加法单子的代数结构。
https://stackoverflow.com/questions/8807539
复制相似问题