8 lines
285 B
Common Lisp
8 lines
285 B
Common Lisp
(defun flatten (obj)
|
|
(do* ((result (list obj))
|
|
(node result))
|
|
((null node) (delete nil result))
|
|
(cond ((consp (car node))
|
|
(when (cdar node) (push (cdar node) (cdr node)))
|
|
(setf (car node) (caar node)))
|
|
(t (setf node (cdr node))))))
|