什么是除Option之外的标准Scala monad?

Iva*_*van 9 monads scala

Optionmonad在Scala中几次变成了一个设施.Scala标准库中还有其他monad吗?

Dan*_*ral 12

路易吉的答案是正确的,但信息量不大,恕我直言.

所有集合都可以实现monad接口,但其中的签名flatMap不是monad的flatMap.不过,他们大多数时候都会像monad一样行事.Luigi列出的几乎所有类都与集合有关.

LeftProjectRightProjectEither.基本上,Either不是monad,但如果你"投射"其中一面,那么那边就像一个Optionmonad.

Parser 是一个monad,它构成了解析器组合器的基础.

我承认我不承认ControlContext.我想知道它是否与延续有关(也是monad).


Lui*_*hys 11

您可以通过flatMapAPI索引中查找告诉来解决此问题.它给:

FilterMonadic 
Stream 
StreamWithFilter 
TraversableMethods 
Iterator 
ParIterableLike 
ParIterableLike 
ParIterableViewLike 
TraversableLike 
WithFilter 
MonadOps 
TraversableProxyLike 
TraversableViewLike 
LeftProjection 
RightProjection 
Option 
WithFilter 
Responder 
Zipped 
ControlContext
Parser 
Run Code Online (Sandbox Code Playgroud)