19 lines
349 B
Plaintext
19 lines
349 B
Plaintext
(define permute
|
|
[] -> []
|
|
[X] -> [[X]]
|
|
X -> (permute-helper [] X))
|
|
|
|
(define permute-helper
|
|
_ [] -> []
|
|
Done [X|Rest] -> (append (prepend-all X (permute (append Done Rest))) (permute-helper [X|Done] Rest))
|
|
)
|
|
|
|
(define prepend-all
|
|
_ [] -> []
|
|
X [Next|Rest] -> [[X|Next]|(prepend-all X Rest)]
|
|
)
|
|
|
|
(set *maximum-print-sequence-size* 50)
|
|
|
|
(permute [a b c d])
|