Možno postupovať napríklad takto. Pomocou funkcie isin (treba definovať),
zistíme či sa nachádza jeden prvok v zozname a potom v podmienke AND
otestujem pre oba.

Ak prvky majú byť čísla stačí pre porovnanie =, ak atómy eq, ak sv (s-výraz) equal.


(defun isin (a zoz)
 (cond ((null zoz) NIL)
       ((equal (first zoz) a) T)
       (T (isin a (rest zoz)))
 )
)

(defun hladaj2 (a b zoz)
 (and (isin a zoz) (isin b zoz))
)

Príklady použitia:
(hladaj2 '(a) 'b '(1 b 3))   -> NIL
(hladaj2 '(a) 'b '(1 b (a))) -> T


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