2016-05-16 4 views

ответ

1

Не может быть лучшим решением, но каскадные карты, а затем выравнивание результата было лучшим, что я могу придумать.

Замечательная вещь о FP заключается в том, что вы можете делать то же самое очень разными способами. Надеюсь, кто-то вывешивает другое решение

val input = List(("a", List("1", "2")), ("b", List("3","4"))) 

val output = input.map(it => it._2.map { (it._1, _)}).flatten 

Как указаны на выходе может изменяться в

input.flatMap(tuple => tuple._2.map { (tuple._1 , _) }) 
+1

Нет необходимости выравниваться, если вы flatMap. – pedrofurla

4

Вы можете сделать это с помощью нескольких строк for ... yield выражения:

for { 
    (a, bs) <- tupleList 
    b <- bs 
} yield (a, b)