在Scala列表中查找组合

时间:2015-04-16 04:16:41

标签: scala

我有List[List[Row]](行是自定义类型,它的定义在这里并不重要)。

我想获得所有可能的方法,我可以从每个内部列表中选择一行,以便结果也是List[List[Row]]

1 个答案:

答案 0 :(得分:4)

scala> def combs[A](xss: List[List[A]]): List[List[A]] = xss match {
     |   case Nil => List(Nil)
     |   case xs::rss => for(x <- xs;cs <- combs(rss)) yield x::cs
     | }
combs: [A](xss: List[List[A]])List[List[A]]

scala> combs(List(List(1, 2), List(4, 5), List(6))) foreach println
List(1, 4, 6)
List(1, 5, 6)
List(2, 4, 6)
List(2, 5, 6)