LISP - Dayanaklar
Tahminler, bazı belirli koşullar için bağımsız değişkenlerini test eden ve koşul yanlışsa veya koşul doğruysa sıfır olmayan bir değer döndüren işlevlerdir.
Aşağıdaki tablo, en sık kullanılan bazı yüklemleri göstermektedir -
| Sr.No. | Dayanak ve Açıklama |
|---|---|
| 1 | atom Bir bağımsız değişken alır ve bağımsız değişken bir atom ise t, aksi takdirde sıfır döndürür. |
| 2 | equal İki argüman alır ve geri döner t yapısal olarak eşitlerse veya nil aksi takdirde. |
| 3 | eq İki argüman alır ve geri döner t aynı özdeş nesneler ise, aynı hafıza konumunu paylaşıyorlarsa veya nil aksi takdirde. |
| 4 | eql İki argüman alır ve geri döner t eğer argümanlar eqveya aynı değere sahip aynı türde sayılarsa veya aynı karakteri temsil eden karakter nesneleriyse veya nil aksi takdirde. |
| 5 | evenp Bir sayısal argüman alır ve geri döner t bağımsız değişken çift sayı ise veya nil aksi takdirde. |
| 6 | oddp Bir sayısal argüman alır ve geri döner t bağımsız değişken tek sayı ise veya nil aksi takdirde. |
| 7 | zerop Bir sayısal argüman alır ve geri döner t bağımsız değişken sıfırsa veya nil aksi takdirde. |
| 8 | null Bir argüman alır ve geri döner t bağımsız değişken sıfır olarak değerlendirilirse, aksi takdirde döndürür nil. |
| 9 | listp Bir argüman alır ve geri döner t bağımsız değişken bir liste olarak değerlendirilirse, aksi takdirde döndürür nil. |
| 10 | greaterp Bir veya daha fazla argüman alır ve geri döner t Ya tek bir argüman varsa veya argümanlar art arda soldan sağa doğru daha büyükse veya nil aksi takdirde. |
| 11 | lessp Bir veya daha fazla argüman alır ve geri döner t Ya tek bir argüman varsa veya argümanlar art arda soldan sağa doğru daha küçükse veya nil aksi takdirde. |
| 12 | numberp Bir argüman alır ve geri döner t argüman bir sayı ise veya nil aksi takdirde. |
| 13 | symbolp Bir argüman alır ve geri döner t eğer argüman bir sembol ise, aksi takdirde geri döner nil. |
| 14 | integerp Bir argüman alır ve geri döner t bağımsız değişken bir tamsayı ise, aksi takdirde döndürür nil. |
| 15 | rationalp Bir argüman alır ve geri döner t argüman rasyonel sayı ise, oran veya sayı, aksi takdirde döndürür nil. |
| 16 | floatp Bir argüman alır ve geri döner t bağımsız değişken bir kayan noktalı sayı ise, aksi takdirde döndürür nil. |
| 17 | realp Bir argüman alır ve geri döner t bağımsız değişken gerçek bir sayı ise, aksi takdirde döndürür nil. |
| 18 | complexp Bir argüman alır ve geri döner t bağımsız değişken karmaşık bir sayı ise, aksi takdirde döndürür nil. |
| 19 | characterp Bir argüman alır ve geri döner t argüman bir karakter ise, aksi takdirde döndürür nil. |
| 20 | stringp Bir argüman alır ve geri döner t argüman bir dizge nesnesiyse, aksi takdirde döndürür nil. |
| 21 | arrayp Bir argüman alır ve geri döner t argüman bir dizi nesnesiyse, aksi takdirde döndürür nil. |
| 22 | packagep Bir argüman alır ve geri döner t bağımsız değişken bir paketse, aksi takdirde geri döner nil. |
örnek 1
Main.lisp adlı yeni bir kaynak kod dosyası oluşturun ve içine aşağıdaki kodu yazın.
(write (atom 'abcd))
(terpri)
(write (equal 'a 'b))
(terpri)
(write (evenp 10))
(terpri)
(write (evenp 7 ))
(terpri)
(write (oddp 7 ))
(terpri)
(write (zerop 0.0000000001))
(terpri)
(write (eq 3 3.0 ))
(terpri)
(write (equal 3 3.0 ))
(terpri)
(write (null nil ))
Kodu çalıştırdığınızda, aşağıdaki sonucu döndürür -
T
NIL
T
NIL
T
NIL
NIL
NIL
T
Örnek 2
Main.lisp adlı yeni bir kaynak kod dosyası oluşturun ve içine aşağıdaki kodu yazın.
(defun factorial (num)
(cond ((zerop num) 1)
(t ( * num (factorial (- num 1))))
)
)
(setq n 6)
(format t "~% Factorial ~d is: ~d" n (factorial n))
Kodu çalıştırdığınızda, aşağıdaki sonucu döndürür -
Factorial 6 is: 720