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) –