簡體   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