(defun select (selector-fn facts) "return all list items satisying selector-fn" (remove-if-not selector-fn facts)) (defun flatten (l) (let (out) (visit #'(lambda (one) (push one out)) l) (reverse out)))