とFuture[Option[A]]
を1つのfor
のように組み合わせる方法 - 次のスニペットは機能しますが、醜いように見えますが、より良い方法はありますか?異なるネストされたモナドを理解のために組み合わせる
def getOne: Future[Int] = Future.value(1)
def getSomeOne: Future[Option[Int]] = Future.value(Some(1))
def main(args: Array[String]): Unit = {
val sum = for {
y <- OptionT(getOne.map(Some(_)).asInstanceOf[Future[Option[Int]]])
x <- OptionT(getSomeOne)
} yield x + y
println(Await.result { sum.run })
}
?私は 'scala.concurrent.Future'にメソッド値を見つけることができません。 – pedrofurla
'twitter.util.Guture'。 「Functor」と「Monad」のインスタンスが長い間は問題ありません – synapse
心配はありません。 – pedrofurla