我有一个List[List[Row]](行是自定义类型,在这里它的定义并不重要)。
我想获得所有可能的方法,可以从每个内部List中选择一个Row,从而结果也为List[List[Row]]。
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)
Run Code Online (Sandbox Code Playgroud)