謂詞是函數(shù),測試其參數(shù)對一些特定的條件和返回nil,如果條件為假,或某些非nil值條件為true。
下表顯示了一些最常用的謂詞:
| 謂詞 | 描述 |
|---|---|
| atom | 它接受一個參數(shù),并返回t如果參數(shù)是一個原子或,否則nil。 |
| equal | 它有兩個參數(shù),并返回t,如果他們在結(jié)構(gòu)上相同或否則nil |
| eq | 它有兩個參數(shù),并返回t,如果它們是相同的相同的對象,共享相同的內(nèi)存位置或否則nil |
| eql | 它有兩個參數(shù),并返回t如果參數(shù)相等,或者如果他們是同一類型具有相同值的數(shù)字,或者如果他們是代表相同的字符的字符對象,否則返回nil |
| evenp | 它接受一個數(shù)字參數(shù),并返回t如果參數(shù)為偶數(shù)或否則為nil。 |
| oddp | 它接受一個數(shù)字參數(shù),并返回t如果參數(shù)為奇數(shù)或否則為nil。 |
| zerop | 它接受一個數(shù)字參數(shù),并返回t如果參數(shù)是零或否則為nil。 |
| null | 它接受一個參數(shù),并返回t,如果參數(shù)的計算結(jié)果為nil,否則返回nil。 |
| listp | 它接受一個參數(shù),并返回t如果參數(shù)的計算結(jié)果為一個列表,否則返回nil。 |
| greaterp | 這需要一個或多個參數(shù),并返回t,如果不是有一個單一的參數(shù)或參數(shù)是從左到右,或如果無先后,否則為nil。 |
| lessp | 這需要一個或多個參數(shù),并返回t,如果不是有一個單一的參數(shù)或參數(shù)是從左到右依次更小的向右,或否則為nil. |
| numberp | 它接受一個參數(shù),并返回t如果參數(shù)是一個數(shù)字,否則為nil。 |
| symbolp | 它接受一個參數(shù),并返回t如果參數(shù)是一個符號,否則返回nil。 |
| integerp | 它接受一個參數(shù),并返回t如果參數(shù)是一個整數(shù),否則返回nil。 |
| rationalp | 它接受一個參數(shù),并返回t如果參數(shù)是有理數(shù),無論是比例或數(shù)量,否則返回nil>。 |
| floatp | 它接受一個參數(shù),并返回t當(dāng)參數(shù)則返回一個浮點數(shù)否則為nil。 |
| realp | 它接受一個參數(shù),并返回t如果參數(shù)是一個實數(shù),否則返回nil。 |
| complexp | 它接受一個參數(shù),并返回t如果參數(shù)是一個復(fù)數(shù),否則返回nil。 |
| characterp | 它接受一個參數(shù),并返回t如果參數(shù)是一個字符,否則返回nil。 |
| stringp | 它接受一個參數(shù),并返回t,如果參數(shù)是一個字符串對象,否則返回nil。 |
| arrayp | 它接受一個參數(shù),并返回t如果參數(shù)是一個數(shù)組對象,否則返回nil。 |
| packagep | 它接受一個參數(shù),并返回t,如果參數(shù)是一個包,否則返回nil。 |
示例 1
創(chuàng)建一個名為main.lisp一個新的源代碼文件,并在其中輸入如下代碼:
(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 ))
當(dāng)執(zhí)行以上代碼,它返回以下結(jié)果:
T
NIL
T
NIL
T
NIL
NIL
NIL
T
示例 2
創(chuàng)建一個名為main.lisp一個新的源代碼文件,并在其中輸入如下代碼:
(defun factorial (num) (cond ((zerop num) 1) (t ( * num (factorial (- num 1)))))) (setq n 6) (format t "~% Factorial ~d is: ~d" n (factorial n))
當(dāng)執(zhí)行以上代碼,它返回以下結(jié)果:
Factorial 6 is: 720