Prechádzame s-vyraz a vraciame len párne čísla a miesto akéhokoľvek iného atómu len NIL. Keďže chceme nájsť prvé párne číslo, je v hlavnej funkcii dobré použiť logickú operáciu OR s argumentmi (rekurzívnymi volaniami) v správnom poradí.


(defun prvep (sv)
 (cond ((AND (NUMBERP sv) (EVENP sv)) sv)
       ((ATOM sv) NIL)
       (T (OR (prvep (first sv)) (prvep (rest sv))))
 )
)

; Príklady:
(prvep '(1 2 (3 4) 10)) ; -> 2
(prvep '((7 (8)) 9 10)) ; -> 8

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