(defun filtra (pred lista) (cond ((null lista) nil) ((funcall pred (first lista)) (cons (first lista) (filtra pred lista))) (t (filtra pred (rest lista)))))> (filtra (function par?) (enumera 1 20)) (2 4 6 8 10 12 14 16 18 20)
Esta função já existe em Lisp e denomina-se remove-if-not.