Rekurzívne prechádzame zoznam podobne ako v príklade cislavint, len tu ako výsledok vytvárame zoznam čísel.
; Ak by sme predpokladali, že všetky prvky zoznamu sú čísla, potom možno
; test NUMBERP vynechať.
(defun cislavint (zoz floor top)
(cond ((null zoz) NIL)
((AND (NUMBERP (first zoz)) (OR (< (first zoz) floor) (> (first zoz) top))) (cons (first zoz) (cislavint (rest zoz) floor top)))
(T (cislavint (rest zoz) floor top))
)
)
; Príklady:
(cislavint '(a 1 2 3 b) 1 2) ; -> (3)
(cislavint '(a 1 b -1 0 5) 2 4) ; -> (1 -1 0 5)