1
我有一些lambda表達式如下:序列的功能應用
val foo : (Int => Option[String]) = (x: Int) => Some("foo")
val bar : (Int => Option[String]) = (x: Int) => Some("bar")
Seq(foo,bar).flatMap(_ (2))
,並評估如我所料:
res0: Seq[String] = List(foo, bar)
現在,我將改變lambda表達式爲使他們採取的INT和退回玩具未來計算:
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
val foo1 : (Int => Future[Option[String]]) = (x: Int) => Future successful Some("foo")
val bar1: (Int => Future[Option[String]]) = (x: Int) => Future successful Some("bar")
我想得到和以前一樣的結果,即List("foo", "bar")
但我不知道如何實現它。我想我需要使用Monad Transformers,但不完全確定。
可能重複[使用哪個Monad Transformer?](http://stackoverflow.com/questions/42290243/which-monad-transformer-to-use) –