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.

questionAnswers(4)

yourAnswerToTheQuestion