我在 Haskell 有一些经验,目前正在学习 Scala。我想知道Scala中是否有与Monads等效的东西?
问问题
1654 次
4 回答
12
你可能想看看scalaz;它受到 Haskell 的强烈影响。事实上,经常有人问主要贡献者之一为什么他们不只是使用 Haskell,因为他们似乎非常喜欢它!
Scalaz 大量使用隐式来用它们的 monad 来装饰结构。例如:
val fibs = (0, 1).iterate[Stream]( i => i._2 -> (i._2 + i._1) ).map(_._1)
println( fibs.take(10) )
于 2010-02-10T13:42:11.753 回答
9
我认为值得注意的是,Scala 的“for-comprehension”等同于 Haskell 的单子“do”
于 2010-02-11T00:45:38.853 回答
0
Option 和 List 都是单子。我也相信 Either 的左右投影也是单子。
于 2011-10-02T18:41:25.533 回答
0
Scala 标准库中没有明确的 monad 概念(没有适当的 trait/class 或 typeclass)。
Scala 以一种特别的方式处理这个问题,有关详细信息,请参阅Scala by example的部分。
于 2016-02-12T10:48:49.407 回答