【发布时间】:2014-10-11 05:49:03
【问题描述】:
我知道 monad 是什么以及如何使用它们。我不明白的是什么,比如说,Option 一个单子?
在 Haskell 中,monad Maybe 是一个 monad,因为它是从 Monad 类实例化的(它至少有两个必要的函数 return 和 bind 使得类 Monad 确实是一个 monad)。
但在 Scala 中,我们有这个:
sealed abstract class Option[+A] extends Product with Serializable { ... }
trait Product extends Any with Equals { ... }
与 monad 无关。
如果我在 Scala 中创建自己的类,默认情况下它会是一个 monad 吗?为什么不呢?
【问题讨论】:
标签: scala haskell functional-programming monads maybe