No se puede utilizar para la comprensión para mapear sobre la lista en el futuro
Tengo este problema que tengo que solucionar todo el tiempo. No puedo mapear algo que está contenido dentro de un Futuro usando una comprensión.
Ejemplo:
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future
val f = Future( List("A", "B", "C") )
for {
list <- f
e <- list
} yield (e -> 1)
Esto me da el error:
error: type mismatch;
found : List[(String, Int)]
required: scala.concurrent.Future[?]
e <- list
^
Pero si hago esto funciona bien:
f.map( _.map( (_ -> 1) ) )
¿No debería poder hacer esto utilizando una para comprensión? ¿Es la razón por la que funciona en mi otro ejemplo que no hago flatmap? Estoy usando Scala 2.10.0.