モナドはあなたが物事を行うことができるようにものを置くものです.


閉じるこの動画はお気に入りから削除されています.しかし、あなたがもう少し聞きたいならば、大丈夫、私はあなたを奪わないでしょう.
いくつかの一貫性のないデータを処理するために必要な時間を考えてください.あなたは、あなたがオプション/nullableな値をどこかに持っていたどんな時間でもこれをしなければならないと理解する前に、非常に遠くに考える必要はありませんtruthy , Java内の何かnull , Haskellの中の何かMaybe something .
JavaScriptで言いましょう、私には、私が知っているかもしれない値(物)の配列がありますundefined 値.
const myJsArray = 
  [value1, value2, value3]

今、私はこの配列を反復処理したい.
const double = x => x * 2

const myNewArray = myJsArray.map(double)
おそらく、一連のNaN 値あなたはすでにそれがあなたのユーザーのために混乱につながる多くの経路の最初のステップであるということを知っています.

あなたは、あなたのものを持っています、そして、あなたはそれらのもので何かをしたいです


それで、あなたは何を必要としますか?あなたがそれらのものを入れたもの、それで、あなたは彼らと何かをすることができます.あなたはモナドを必要とする!
以前、私はHaskellのものに言及しましたMaybe 種類この型は2つのvariantのいずれかを格納できます.Just something , or Nothing . これは、何かが値を含んでいるかどうかを確認できない場合でも、一貫した操作を実行することができます.実行しようとしている操作はどちらのシナリオで行うかを処理するために必要です.または別の方法を入れて-あなたはそれが何かにあったのであなたがあなたのことにしたいことを行うことができます知っている!

なぜ、私はこれを書きましたか?


私は長年にわたってmonadsの異なる説明の多くを聞いたことがある.人々は彼らの説明において空想的な言葉を使うのが好きである.そして、誰かが彼らにモナドに言及したすぐに、多くの人々が機能的プログラミングから完全に恥ずかしがりをしているのを見ました.実際には、エルムコミュニティは、モナド(opting)を言うのも好きでありませんCustom Types その代わりに、それはとても一般的に不必要な混乱と結びついているので、私は同意します.
グーグル"What is a monad?" そして、あなたは多分、同じことがたくさんの方法で説明されるのを見るでしょう、しかし、私はこの記事を読む前にあなたが読んだ説明と全く同じくらい単純でないと賭けました.あなたが結果でこのポストを得るために起こるならば.あなたは今も理解から一歩離れているrecursion .