8

私はかなりの数の場所に出くわしています

def f(s: String): Option[Long] = ...
def g(l: Long): IO[Option[Wibble]] = ...

val a: IO[Option[Wibble]] = f(param).flatMap(g).sequence.map(_.join)

何度も繰り返されるのを見る.sequence.map(_.join)と、私は気になり始めています。同じことを達成するためのより慣用的な方法はありますか?

4

2 に答える 2

1

これは、モナド変換子の使用例のように思えます。Haskellでの説明についてはhereを、Scala での議論についてはhereを参照してください。

于 2012-01-13T12:16:12.833 に答える