dondog
dondog

Reputation: 399

Scala permutation of Factorials

How can I find the n! permutations of certain letters on Scala?

Upvotes: 1

Views: 1269

Answers (2)

Eastsun
Eastsun

Reputation: 18859

scala> def permutations[T](xs: List[T]): List[List[T]] = xs match {
     |     case Nil => List(Nil)
     |     case _   => for(x <- xs;ys <- permutations(xs diff List(x))) yield x::ys
     | }
permutations: [T](xs: List[T])List[List[T]]

scala> permutations("abc".toList) foreach println
List(a, b, c)
List(a, c, b)
List(b, a, c)
List(b, c, a)
List(c, a, b)
List(c, b, a)

Upvotes: 8

Rustem Suniev
Rustem Suniev

Reputation: 1149

Scala 2.9 RC1:

scala> "abc".permutations.toList
res58: List[String] = List(abc, acb, bac, bca, cab, cba)

Upvotes: 9

Related Questions