Option
monad在Scala中几次变成了一个设施。 Scala标准库中还有其他monad吗?
答案 0 :(得分:12)
Luigi的回答是正确的,但信息量不大,恕我直言。
所有集合都可以实现monad接口,但其中flatMap
的签名不是monad的flatMap。不过,他们大多数时候都会像monad一样行事。 Luigi列出的几乎所有课程都与馆藏有关。
LeftProject
和RightProject
指的是Either
。基本上,Either
不是monad,但如果你“投射”其中一个边,那么那边的行为就像一个Option
monad。
Parser
是一个monad,它构成了解析器组合器的基础。
我承认我不承认ControlContext
。我想知道它是否与延续有关(也是monad)。
答案 1 :(得分:11)
您可以通过在API index中查找告诉flatMap
来解决此问题。它给出了:
FilterMonadic
Stream
StreamWithFilter
TraversableMethods
Iterator
ParIterableLike
ParIterableLike
ParIterableViewLike
TraversableLike
WithFilter
MonadOps
TraversableProxyLike
TraversableViewLike
LeftProjection
RightProjection
Option
WithFilter
Responder
Zipped
ControlContext
Parser
答案 2 :(得分:1)