Nie można użyć do zrozumienia mapy na liście w przyszłości
Mam ten problem, który muszę obejść za każdym razem. Nie mogę odwzorować czegoś, co zawiera się w Przyszłości, używając do zrozumienia.
Przykład:
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)
Daje mi to błąd:
error: type mismatch;
found : List[(String, Int)]
required: scala.concurrent.Future[?]
e <- list
^
Ale jeśli to zrobię, to działa dobrze:
f.map( _.map( (_ -> 1) ) )
Czy nie powinienem być w stanie tego zrobić za pomocą rozumienia ze zrozumieniem, czy jest to powód, dla którego działa w moim innym przykładzie, którego nie mapuję? Używam Scala 2.10.0.