(defun flatten (obj) (let (result) (labels ((grep (obj) (cond ((null obj) nil) ((atom obj) (push obj result)) (t (grep (rest obj)) (grep (first obj)))))) (grep obj) result)))