簡體   English   中英

J中的術語“monadic”是否與Haskell的使用有關?

[英]Does the term “monadic” in J have anything to do with its Haskell use?

(對不起,我很愚蠢,沒有受過教育,所以這可能是一個荒謬的問題。)

我剛開始看J,他們使用術語“monadic”和“dyadic”來表示(對我來說)是一元和二元運算符。 為什么要這樣做,它與我聽到的那個地方(Haskell)有什么關系呢? 我的猜測是他們是無關的同音異義詞,但我不確定。

它們是無關的,除非兩者都來自希臘詞根“一”。 Monadic和dyadic確實是一元和二元函數的術語。 具體來說,它們是希臘語派生的等價物 - 使用-adic而不是-ary 考慮“三元組”這個詞,它也是希臘語派生的。

從某種意義上說,哈斯克爾使用它的單詞有一個不明確的詞源,但可能源於“幺半群”。

不過,我會鼓勵在Haskell中堅持使用源自拉丁語的“n-ary”術語。 由於currying,Haskell中的所有函數在技術上都有一個參數,因此使用希臘語派生的形式會產生任意數量的混淆。

他們是無關的; CA McCann指出了兩者的詞源。

無論如何,Haskell的使用當然來自范疇理論,被認為是與monad其他意義無關的獨立創造。

事實上,J“monadic”的感覺可以追溯到APL,它早於Haskell四分之一世紀! 我認為它也可能早於該術語的范疇理論用法。

Adicity (或adinity )是arity的替代品,使用希臘數字根而不是拉丁語:

  • niladic / medadic = nullary

  • monadic =一元

  • 二元=二元

  • 三元組=三元組

  • 四聯=四元

  • ...

monad在哲學,宗教,生物學,范疇論和函數式編程中的各種含義都是從“單位”的字面表示中分別得出的。 Haskell項可能來源於monoid ,一種等效於加性monad的代數結構。

不,J的使用與Haskell術語無關。 Monadic和dadadic函數分別是一個和兩個參數的函數。

J術語源自APL,它比Haskell稍早,但我很少看到它們在APL族之外使用。

在非APL環境中使用這些術語的一個例子來自清潔代碼一書,該代碼在關於函數的章節中討論了關於niladic,monadic和dyadic函數的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM