Sú dve možnosti. Buď funkcia zruší len prvý výskyt daného prvku, alebo zruší všetky také prvky. V oboch prípadoch ide o filter. V druhom prípade je to však čistý filter.
; Funkcia zruší všetky také prvky. Ak by mala zrušiť len prvý, treba
; upraviť akciu v druhej podmienke v cons. Nebolo by tam rekurzívne
; volanie, ale len (rest tab). Toto by bolo výhodne, ak by sa tabuľka
; reprezentovala zoznamom bodka-dvojíc s jednoznačným kľúčom v každom
; prvku (t.j. ľavá časť bodka-dvojice je jedinečná vrámci zoznamu).
(defun zrus (sv tab)
(cond ((null tab) NIL)
((equal (first (first tab)) sv) (zrus sv (rest tab)))
(T (cons (first tab) (zrus sv (rest tab))))
)
)
; Príklad:
(zrus 'k2 '((k1 . a)(k2 . b)(k3 . c)(k2 . x))) -> ((k1 . a) (k3 . c))