6

ある概念の理解を深めているとき、概念名の明らかな語源が、その概念について理解していると思うものとどのように関連しているかを確認できないのは非常に不満です. つながりが見えない場合、その名前が伝えようとしている、まだ発見していない重要な洞察があるような気がします。

Monad: ギリシャ語で団結を意味します。月 = 1; ad = 特定の数を含むグループまたは単位。これは「一つのもので構成されるグループまたはユニット」に構成されます。

http://www.haskell.org/haskellwiki/All_About_Monadsは次のように述べています。

「モナドは、値とそれらの値を使用した一連の計算に関して計算を構造化する方法です。モナドを使用すると、プログラマは、それ自体が一連の計算である可能性がある、連続したビルディング ブロックを使用して計算を構築できます。」... 「I/O を実行し、状態を持ち、複数の結果を返すなどの計算を構築するために、他のモナドが存在します」

ワンネスについては何もありません。

http://www.haskell.org/haskellwiki/Monadは、モナドという用語のワンネスとは、モナドが生成する1 つの出力を指すと主張しています。しかし、任意の関数が 1 つの出力を生成することを考えると (また、上記の参照では、帯域外/エラー結果は言うまでもなく、「複数の結果を返す可能性がある」と述べられています)、「グループまたはユニット」については何もないため、その説明は説得力がないようです。 .

より良い説明はありますか?

[編集: 「トピック外」フラグへの対応。私の質問は、「モナド」という言葉自体の語源についてではありません。それはモナドのHaskellの概念についてであり、モナドという言葉の語源がどのようにその概念について私たちに通知するか、または通知しないか、あるいは実際にトピックの理解から私たちを誤った方向に導くかについてです. モナドが Haskell で有名な伝達困難な概念であることを考えると、これは確かにプログラミングに関する問題です。

これが顕著な問題であることは、「モナド」のルーツが目前のトピックにどのように関連するかについての回答者の提案のばらつきによって補強されます。これには、Haskell 自身のドキュメントの説明が非常に疑わしいという観察が含まれます。

とはいえ、私は与えられた回答にかなり満足しています (ありがとうございます!) ので、トピックを再度開く必要はありません。しかし、重要な Haskell の概念について同じように混乱している他の人がここで見つけることができるように、他の場所に移動しないことをお勧めします。]

4

1 に答える 1

10

もっと良い説明はありますか?

簡単な答え:いいえ、実際にはありません。

少し短い答え:それはほぼ確実に「モノイド」に関連しており、「モナド」の他の使用法には関連していません(少なくとも2つあります)。この用語は数学者の集まりで造られたため、書かれたものすらありません。用語の最初の使用であるソース。

引用と引用による長い答え:私がここに書いたもの。

ちなみに、主張されている意味についてのwikiでのその主張は、私には非常に疑わしいようです。

于 2012-12-30T11:17:05.977 に答える