Plaster
New
List
Login
common-lisp
default
anonymous
2021.10.30 15:45:07
(defun flatten (tree) "Traverses TREE in order, collecting non-null leaves into a list." (do ((result '()) (remaining (list tree))) ((null remaining) result) (typecase (car remaining) (null (pop remaining)) (atom (rotatef (cdr remaining) result remaining)) (cons (setf remaining (list* (cdar remaining) (caar remaining) (cdr remaining)))))))
Raw
Annotate
Repaste
Edit