Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // permutations:
- object Main extends App {
- def f(base: List[Int], acc: List[Int]): List[List[Int]] = {
- if (base.size == acc.size) List(acc) // if accumulator contains all elements => return
- else base filter(!acc.contains(_)) flatMap { w => // otherwise fall into recursion
- f(base, w :: acc)
- }
- }
- f(List(1, 2, 3), Nil) foreach println
- }
- // Output:
- // List(3, 2, 1)
- // List(2, 3, 1)
- // List(3, 1, 2)
- // List(1, 3, 2)
- // List(2, 1, 3)
- // List(1, 2, 3)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement