との違いの1 つについての私の理解では、では利用できますが、 では利用できません。MonadApplicativeflatMapMonadApplicative
それが本当なら、私はこれらの Scala Play JSON docsに混乱しています:
興味深いのは、JsResult[A] がモナド構造であり、そのような構造の古典的な関数で使用できることです。
flatMap[X](f: A => JsResult[X]): JsResult[X]
等
しかし、その後、ドキュメントは次のように続けます。
JsResult[A] はエラーを累積するため、Monadic ではなく Applicative であることに注意してください。この累積的な機能により、JsResult[T] を理解のために使用するのはあまり適切ではありません。
私が理解しているように、 afor-comprehensionは の構文糖衣であるためflatMap、どのようにして aとJsResultの両方になることができますか?ApplicativeMonad