私はハスケルでモナドを計算しようとしていますが、あまりにも遠くには達していません。モナドの型コンストラクタとリターン関数の相違点(Haskell)
私はhttps://en.wikibooks.org/wiki/Haskell/Understanding_monads#cite_note-1と他のいくつかのチュートリアル/説明を見つけましたが、タイプコンストラクタとリターン関数の違いについては説明していないようです。
Iは
- 型コンストラクタを理解できるように、基本的なデータ・タイプの指定された値からモナドを構築します。つまり、Javaのような通常のコンストラクタのようなものです。これは、指定されたパラメータから新しいインスタンスを構築します。
return
関数は、基本データ型の指定された値に型コンストラクタを適用し、構築されたモナドを返します。
2つの機能が基本的に同じである点は何ですか?だから、たぶん、モナドの例を使用して
EDIT 、
country = Just "China"
:(コンストラクタ)が値 "中国" のためのモナドを作成します。return "China"
:中国の値に対応するモナドを返します。したがって、基本的に"China"
値を含むモナドです。
私はモナドを値のコンテナとして理解しています。 モナドの1つの使用方法は、単純/既存の計算をより複雑な計算に結合することです。
[]
とJust
の一般化で、Left
と...おそらくこれをもう少し具体的にするでしょうか?これを簡単にするための 'Maybe'モナドについて話しましょう - ' Maybe'は型のコンストラクタです、 'return = Just'なので、あなたはこれを使ってあなたの質問を言い換えることができますか? – Carstenbtw:これらは決して同じことをしません - タイプコンストラクタを関数として見ることはできますが、それは型レベルの関数です - 返り値はモナドに値をラップします – Carsten
私は同意すれば分かりません重複...ここで理解のレベルとは異なる問題であると思われる – Carsten