(1.) možnosť hladaj1_a. Pomocou funkcie isin (treba napísať), zistím či sa nachádza
jeden prvok a potom v podmienke OR otestujem pre oba.

(2.) možnosť hladaj1_b. Urobím to pomocou jednej funkcie. Teda budem prechádzať zoznam a na každom prvku testovať, či je to jeden z daných (OR).

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 hladaj1_a (a b zoz)
 (or (isin a zoz) (isin b zoz))
)

Príklad použitia:
(hladaj1_a 'a 'b '(1 b 3)) vráti T.

(defun hladaj1_b (a b zoz)
 (cond ((null zoz) NIL)
       ((or (equal a (first zoz)) (equal b (first zoz))) T)
       (T (hladaj1_b a b (rest zoz)))
 )
)

Príklad použitia:
(hladaj1_b 'a '(b) '(1 (b) 3)) vráti T.

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