我对 和 之间的区别之一的理解是on可用,但不能。Monad
Applicative
flatMap
Monad
Applicative
如果这是真的,我对这些 Scala Play JSON文档感到困惑:
所以有趣的是 JsResult[A] 是一个单子结构,可以与此类结构的经典函数一起使用:
flatMap[X](f: A => JsResult[X]): JsResult[X]
ETC
但是,然后文档继续说:
请注意,JsResult[A] 不仅是 Monadic,而且是 Applicative,因为它会累积错误。这个累积特性使得 JsResult[T] 不太好用于理解,因为你只会得到第一个错误而不是全部。
既然,据我所知, afor-comprehension
是 的语法糖,那么 a和flatMap
怎么可能JsResult
同时是?Applicative
Monad