Lekcja 9
Spis treści | Lekcja 8 | Lekcja 10
9. Predykaty
Predykat jest funkcją zwracającą odpowiedź. Predykat zwraca symbol T kiedy ma na myśli tak i symbol NIL, kiedy odpowiedź znaczy nie. Predykat z poniższego przykładu orzeka, czy na jego wejściu jest numer.
9.1.
(NUMBERP 2) => T (NUMBERP KOT) => NIL
Oto inne przykłady predykatów: zwraca T, jeśli jego pierwsze wejście jest większe niż jego drugie wejście. (To jest też pierwszy wyjątek od konwencji, że nazwy predykatów kończą się literą ”’P”.)
9.2.
(< 2 3) => T (> 2 3) => NIL
EQUAL to predykat porównujący dwie rzeczy, by zobaczyć, czy są one takie same. EQUAL zwraca T, jeśli jego dwa wejścia są równe; w przeciwnym wypadku zwraca NIL. Dialekt języka programowania Lisp też zawiera orzeczenia nazwane EQ, EQL i EQUALP, których zachowanie jest nieznacznie różne niż EQUAL; różnice nie będą dotyczyły nas tutaj. Dla początkujących, wystarczy znajomość EQUAL.
9.3.
(EQUAL KOT MYSZ) => NIL (EQUAL KOT KOT) => T
Predykat LISTP zwraca T, jeśli jego wejście jest listą oraz zwraca NIL dla nie – listy.
9.4.
(LISTP kotek) => NIL (LISTP (wlazl kotek na plotek)) => T
Spis treści | Lekcja 8 | Lekcja 10