Je ne comprends pas pourquoi cette construction provoque une erreur de type incompatibilité dans Scala:
for (first <- Some(1); second <- List(1,2,3)) yield (first,second)
<console>:6: error: type mismatch;
found : List[(Int, Int)]
required: Option[?]
for (first <- Some(1); second <- List(1,2,3)) yield (first,second)
Si je commute le Some avec la List, ça compile bien:
for (first <- List(1,2,3); second <- Some(1)) yield (first,second)
res41: List[(Int, Int)] = List((1,1), (2,1), (3,1))
Cela fonctionne aussi très bien:
for (first <- Some(1); second <- Some(2)) yield (first,second)
Cela n'a vraiment aucun sens pour moi, peut-être que je n'avais pas bien compris comment fonctionnent les compréhensions à Scala ...
Merci d'avance.