Ako základ môže poslúžiť schéma filter na ľubovolnej úrovni.
; Pre porovnávanie je dobré použiť equal, pretože p nemusí byť atóm.
; Hlavná funkcia.
(defun odstran (p sv)
(cond ((NULL sv) NIL)
((equal p (first sv)) (odstran p (rest sv)))
((ATOM (first sv)) (cons (first sv) (odstran p (rest sv))))
(T (cons (odstran p (first sv)) (odstran p (rest sv))))
)
)
; Príklady:
(odstran 'X '(X 1 (X 2) 3 (X))) ; -> (1 (2) 3 NIL)
(odstran '(1 2) '(1 (1 2) 3 ((1 2) 1))) ; -> (1 3 (1))