Чтобы перечислить все варианты списка Scala, вы можете использовать различные методы. Вот несколько примеров кода:
-
Использование метода
permutations:val list = List(1, 2, 3) val permutations = list.permutations.toList permutations.foreach(println) -
Использование рекурсии:
def permutations[T](list: List[T]): List[List[T]] = list match { case Nil => List(Nil) case _ => for { x <- list xs <- permutations(list.filterNot(_ == x)) } yield x :: xs } val list = List(1, 2, 3) val result = permutations(list) result.foreach(println) -
Использование метода
комбинацийи последующая перестановка комбинаций:def permutations[T](list: List[T]): List[List[T]] = list match { case Nil => List(Nil) case _ => for { i <- 0 until list.length (before, x :: after) = list.splitAt(i) perm <- permutations(before ++ after) } yield x :: perm } val list = List(1, 2, 3) val combinations = list.combinations(list.length) val permutations = combinations.flatMap(permutations) permutations.foreach(println)
Это всего лишь несколько примеров того, как генерировать перестановки списка в Scala. Вы можете выбрать метод, который лучше всего соответствует вашим потребностям.