Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个词是不是;一元的;在J中,它和Haskell的用法有什么关系吗?_Haskell_Terminology_Monads_J - Fatal编程技术网

这个词是不是;一元的;在J中,它和Haskell的用法有什么关系吗?

这个词是不是;一元的;在J中,它和Haskell的用法有什么关系吗?,haskell,terminology,monads,j,Haskell,Terminology,Monads,J,(对不起,我又笨又没文化,所以这可能是个荒谬的问题。) 我刚开始研究J,他们使用术语“一元”和“二元”来表示(在我看来)一元运算符和二元运算符。为什么要这样做,它与我听说的另一个地方(哈斯克尔)有什么关系?我猜它们是不相关的同音词,但我不确定。它们是不相关的;C.A.麦肯指出了两者的词源 在任何情况下,Haskell的使用,当然,来自范畴理论,并被认为是一个独立的硬币无关的概念 事实上,J意义上的“一元”可以追溯到APL,它比Haskell早了四分之一个世纪!我认为它可能也早于范畴理论对这个术语

(对不起,我又笨又没文化,所以这可能是个荒谬的问题。)


我刚开始研究J,他们使用术语“一元”和“二元”来表示(在我看来)一元运算符和二元运算符。为什么要这样做,它与我听说的另一个地方(哈斯克尔)有什么关系?我猜它们是不相关的同音词,但我不确定。

它们是不相关的;C.A.麦肯指出了两者的词源

在任何情况下,Haskell的使用,当然,来自范畴理论,并被认为是一个独立的硬币无关的概念


事实上,J意义上的“一元”可以追溯到APL,它比Haskell早了四分之一个世纪!我认为它可能也早于范畴理论对这个术语的使用。

不,J的使用与Haskell术语无关。一元函数和二元函数分别是一个和两个参数的函数

J术语源于APL,它比Haskell稍早一点,但在APL家族之外,我很少看到像这样使用它们


在非APL上下文中使用这些术语的一个例子来自这本书,在关于函数的一章中讨论了niladic、monadic和dyadic函数。

它们是不相关的,除非它们都来源于希腊语的“One”词根。一元和二元确实是一元和二元函数的术语。具体来说,它们是希腊派生的等价物——使用-adic而不是-ary。考虑“三联征”这个词,它也是希腊文派生的。 在哈斯克尔使用单子的意义上,它有但可能来自“幺半群”

不过,我鼓励在Haskell中使用拉丁语派生的“n元”术语。Haskell中的所有函数在技术上都有一个参数,因为使用了curry,所以使用希腊派生形式可能会产生任意数量的混淆。

Adicity(或adinity)是使用希腊数字根而不是拉丁语的替代方法:

  • 尼拉迪奇/梅达迪奇=无主

  • 一元的

  • 并矢=二进制

  • 三元=三元

  • 四元=四元


monad在哲学、宗教、生物学、范畴论和函数式编程中的各种含义都是从其“单位”的字面含义中分别推导出来的。哈斯凯尔项很可能来自于一个代数结构,相当于一个加法单子。

这不是一个愚蠢的问题;“monad”的意思是非常令人惊讶的:)我是第二个ehird。。。听起来独特的名字很多时候并不意味着同一件事。看看“函子”有多少种定义。我猜你引用的单子的定义是“西方哲学传统”的一部分,莱布尼茨特别使用了它。你在说什么?Haskell早于Lisp,Lisp早于APL。事实上,Haskell是在汇编程序发明两年后制作的。@trinithis:你可能把Haskell和其他语言混淆了吗?Lisp是1958年指定的,APL是在1957年到1964年之间开发的,但是Haskell直到1987年才开始使用,而Haskell 1.0直到1990年才被定义。嘿,我喜欢“任意数量的混乱”这个短语。Peter Landin(1966)在《未来700种编程语言》中介绍了APL特定文献之外使用的一元和二元的另一个例子。见第8节。以及附加的讨论。