繁体   English   中英

Scala相当于Haskell monads

[英]Scala equivalent to Haskell monads

我在Haskell有一些经验,目前正在学习Scala。 我想知道Scala中是否有相当于Monads的东西?

你可能想查看scalaz ; 它受到了Haskell的强烈影响。 事实上,人们常常被问到一个主要的贡献者,他们为什么不只是使用Haskell,因为他们似乎非常喜欢它!

Scalaz大量使用implicits以使用monad来装饰结构。 例如:

val fibs = (0, 1).iterate[Stream]( i => i._2 -> (i._2 + i._1) ).map(_._1)
println( fibs.take(10) )

我认为值得注意的是,斯卡拉的“理解”等同于哈斯克尔的monadic“do”

Scala标准库中没有明确的monad概念(没有合适的特征/类或类型类)。

Scala以一种特殊的方式处理这个问题,请参阅Scala的示例部分以了解详细信息。

Option和List都是monad。 我也相信Either的左右投影也是monad。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM