;;; (C) 2008-2009 Dr. Gergo ERDI (in-package :alef) (parse-and-run `(,@*library* (define insertions (x nil) (cons (cons x nil) nil)) (define insertions (x (cons y ys)) (cons (cons x (cons y ys)) (map (lambda (l) (cons y l)) (insertions x ys)))) (define permutations (nil) (cons nil nil)) (define permutations ((cons x xs)) (concat (map (lambda (l) (insertions x l)) (permutations xs)))) (define start () (let ((list (cons 1 (cons 2 (cons 3 (cons 4 nil)))))) (permutations list)))))