J C*_*per 16 monads haskell terminology j
(对不起,我很愚蠢,没有受过教育,所以这可能是一个荒谬的问题.)
我刚开始看J,他们使用术语"monadic"和"dyadic"来表示(对我来说)是一元和二元运算符.为什么要这样做,它与我听到的那个地方(Haskell)有什么关系呢?我的猜测是他们是无关的同音异义词,但我不确定.
C. *_*ann 20
它们是无关的,除非两者都来自希腊词根"一".Monadic和dyadic确实是一元和二元函数的术语.具体来说,它们是希腊语派生的等价物 - 使用-adic而不是-ary.考虑"三元组"这个词,它也是希腊语派生的.
从某种意义上说,哈斯克尔使用它的单词有一个不明确的词源,但可能源于"幺半群".
不过,我会鼓励在Haskell中坚持使用源自拉丁语的"n-ary"术语.由于currying,Haskell中的所有函数在技术上都有一个参数,因此使用希腊语派生的形式会产生任意数量的混淆.
ehi*_*ird 14
他们是无关的; CA McCann指出了两者的词源.
无论如何,Haskell的使用当然来自范畴理论,被认为是与monad的其他意义无关的独立创造.
事实上,J"monadic"的感觉可以追溯到APL,它早于Haskell四分之一世纪!我认为它也可能早于该术语的范畴理论用法.
Jon*_*rdy 12
Adicity(或adinity)是arity的替代品,使用希腊数字根而不是拉丁语:
niladic/medadic = nullary
monadic =一元
二元=二元
三元组=三元组
四联=四元
...
monad在哲学,宗教,生物学,范畴论和函数式编程中的各种含义都是从"单位"的字面表示中分别得出的.Haskell项可能来源于monoid,一种等效于加性monad的代数结构.
sve*_*rre 6
不,J的使用与Haskell术语无关.Monadic和dadadic函数分别是一个和两个参数的函数.
J术语源自APL,它比Haskell稍早,但我很少看到它们在APL族之外使用.
在非APL环境中使用这些术语的一个例子来自清洁代码一书,该代码在关于函数的章节中讨论了关于niladic,monadic和dyadic函数的内容.
归档时间:
13 年,9 月 前
查看次数:
1078 次
最近记录: