Výhodne je použiť funkciu ktorá vracia zoznam bez posledného prvku z príkladu except a ako parameter jej v hlavnej funkcií zadať už zoznam bez prvého prvku.
; Funkcia z príkladu except.
; Ak by sme vedeli, že zoznam bude neprázdny, mohli by sme
; z cond vynechať test ((null zoz) NIL).
(defun except (zoz)
(cond ((null zoz) NIL)
((null (rest zoz)) NIL)
(T (cons (first zoz) (except (rest zoz))))
)
)
; Hlavná funkcia vynechá 1. a posledný prvok zoznamu.
(defun stred (zoz)
(cond ((null zoz) NIL)
(T (except (rest zoz)))
)
)
; Príklady:
(stred '(1 2 3 4 5)) ; -> (2 3 4)
(stred '(1)) ; -> NIL
(stred '()) ; -> NIL