8

私は Haskell の経験があり、現在 Scala を学んでいます。Scala にモナドに相当するものがあるかどうか疑問に思っています??

4

4 に答える 4

12

あなたはおそらくscalazをチェックアウトしたいと思うでしょう。Haskell の影響を強く受けています。実際、主要な貢献者の 1 人に、 Haskell をとても気に入っているように見えるのに、なぜHaskellだけを使用しないのかとよく尋ねられます。

Scalaz は、構造体をモナドで装飾するために、暗黙を多用します。例えば:

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

Scala 標準ライブラリにはモナドの明示的な概念はありません (適切なトレイト/クラスまたは型クラスはありません)。

Scala はこれをアドホックな方法で処理します。詳細については、 Scala by exampleのセクションの内包表記を参照してください。

于 2016-02-12T10:48:49.407 に答える
0

Option も List もモナドです。また、Either の左右の射影もモナドであると考えています。

于 2011-10-02T18:41:25.533 に答える