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

 


Autori[ ZADANIE | AKO ZAČAŤ | RIEŠENIE ]
Posledná aktualizácia 4. 9. 2001
back  home  next