これは私のコードです
def testMap() = {
val x = Map(
1 -> Map(
2 -> 3,
3 -> 4
),
5 -> Map(
6 -> 7,
7 -> 8
)
)
for {
(a, v) <- x
(b, c) <- v
} yield {
a
}
}
上記のコードは
List(1, 1, 5, 5)
for 内包表記の yield 値を に変更するa
と(a, b)
、結果は次のようになります。
Map(1 -> 3, 5 -> 7)
に変更(a, b)
する(a, b, c)
と、結果は
List((1,2,3), (1,3,4), (5,6,7), (5,7,8))
私の質問は、これを理解するための結果の型の決定の背後にあるメカニズムは何ですか?