15

(申し訳ありませんが、私は愚かで教育を受けていないので、これはおそらくばかげた質問です。)

私はJを見始めたばかりで、単項演算子と二項演算子のように見えるものに「モナディック」と「ダイアディック」という用語を使用しています。なぜこれが行われるのですか、そしてそれは私がその用語を聞いた他の場所(Haskell)とどのように関連していますか?私の推測では、それらは無関係の同音異義語ですが、よくわかりません。

4

4 に答える 4

20

それらは、ギリシャ語の「1つ」の語根から派生していることを除いて、無関係です。モナディックとダイアディックは確かに単項関数と二項関数の用語です。具体的には、ギリシャ語から派生した同等のものであり、 -aryの代わりに-adicを使用します。ギリシャ語から派生した「トライアド」という言葉を考えてみましょう。

Haskellが使用する意味でのモナドの語源は不明ですが、おそらく「モノイド」に由来します。

ただし、Haskellではラテン語から派生した「n-ary」という用語を使用することをお勧めします。Haskellのすべての関数は、カリー化のために技術的に1つの引数を持っているため、ギリシャ語から派生した形式を使用すると、任意の量の混乱が生じる可能性があります。

于 2012-01-10T17:24:11.127 に答える
14

それらは無関係です。CA McCann は、両方の語源を指摘しています。

いずれにせよ、Haskell の使用はもちろん圏論に由来し、モナドの他の意味とは無関係の独立した造語であると考えられています。

実際、J の「モナディック」の意味は、Haskell より四半世紀も前の APL にまでさかのぼります。圏論という用語が使われるよりも前かもしれないと思います。

于 2012-01-10T17:23:08.853 に答える
12

Adicity (またはadinity ) はarityの代替であり、ラテン語の代わりにギリシャ語の数根を使用します。

  • niladic/medadic = nullary

  • 単項 = 単項

  • ダイアディック = バイナリ

  • トライアド = ターナリ

  • 四分位 = 四分位

  • …</p>

哲学、宗教、生物学、圏論、関数型プログラミングにおけるモナドのさまざまな意味は、文字通りの「単位」の意味から、すべて別々に導き出されます。Haskell 項はおそらく、加法的モナドに相当する代数構造であるmonoidから派生したものです。

于 2012-01-10T22:24:50.407 に答える
6

いいえ、J の使用は Haskell 用語とは何の関係もありません。単項関数と 2 項関数は、それぞれ引数が 1 つと 2 つの関数です。

J 用語は、Haskell よりも少し古い APL に由来しますが、APL ファミリ以外でこのように使用されているのはほとんど見たことがありません。

APL 以外のコンテキストでのこれらの用語の使用例の 1 つは、ブックClean Codeからのものです。関数に関する章では、ニラディック、モナディック、およびダイアディック関数について説明しています。

于 2012-01-10T17:23:59.400 に答える