fork download
  1. object Main extends App {
  2. val listOfLists = List(List(1, 2, 3), List(10, 20))
  3. val cartesianProduct = listOfLists.foldRight(List(Nil): List[List[Int]])((l1, l2) =>
  4. l1.flatMap(i =>
  5. l2.map(l => i :: l)
  6. )
  7. )
  8.  
  9. println(cartesianProduct) // [[1, 10], [1, 20], [2, 10], [2, 20], [3, 10], [3, 20]]
  10. }
Success #stdin #stdout 0.39s 381952KB
stdin
Standard input is empty
stdout
List(List(1, 10), List(1, 20), List(2, 10), List(2, 20), List(3, 10), List(3, 20))