Permutations: Difference between revisions
Content added Content deleted
(→{{header|Racket}}: We now have a library function, and also a faster+simpler naive impl) |
|||
Line 2,440: | Line 2,440: | ||
=={{header|Racket}}== |
=={{header|Racket}}== |
||
<lang |
<lang racket> |
||
#lang racket |
#lang racket |
||
Line 2,451: | Line 2,451: | ||
(let loop ([l l] [tail '()]) |
(let loop ([l l] [tail '()]) |
||
(if (null? l) (list tail) |
(if (null? l) (list tail) |
||
(append-map ( |
(append-map (λ(x) (loop (remq x l) (cons x tail))) l)))) |
||
(perms '(A B C)) |
(perms '(A B C)) |
||
;; -> '((C B A) (B C A) (C A B) (A C B) (B A C) (A B C)) |
;; -> '((C B A) (B C A) (C A B) (A C B) (B A C) (A B C)) |