私はモナドが(スカラだけではなく、スカラーを使って)理解しています。のは、モナドのほとんど(私の意見では)簡単な例を考えてみましょう:スカラのモナドを理解する
scala.Some
いくつかの記事が述べているように、its classic sense内のすべてのモナドはflatMap
とunit
機能のためのいくつかのルールを守る必要があります。ここで
は、私はそれfrom the category theory standpointを理解したい、より良い、それを理解し、だから、scala.Some
@inline final def flatMap[B](f: A => Option[B]): Option[B]
から定義です。だから、私たちはモナドを考えていて、それはファンクタ(ですが、どういう意味ですか?の間)です。ここで
我々は、カテゴリOption[A]
とOption[B]
に持っており、それに渡さf: A => Option[B]
とともにflatMap
は、それらの間のFunctorを定義することになっています。しかし、tranditionalカテゴリの定義では、カテゴリからそれ自身のファンクタです。
あなたの質問は何ですか?モナドの考え方と 'flatMap'のしくみは単純です:モナドは値を保持するボックスで、' flatMap'に 'f'という関数を与えて、ボックスの値で何かを行います。元のボックスの値に 'f'を適用した結果を含む別のボックスです。 – Jesper
カテゴリはスカラ型のカテゴリなので、 'Option'はそのカテゴリの内書館です。 – Lee
@Leeそれで、それぞれのタイプ 'T'を' Option [T] 'にマップしますか? – user3663882