断言是针对某些特定条件测试其参数的函数,如果条件为false,或者某些非nil值为条件为true,则返回nil。
下表显示了一些最常用的断言-
Sr.No. | Predicate & 描述 |
---|---|
1 |
atom 它接受一个参数,如果参数是原子,则返回t,否则返回nil。 |
2 |
equal 它接受两个参数,如果相等,则返回 t ,否则返回 nil 。 |
3 |
eq 它使用两个参数,如果它们是相同的对象,则返回 t ,否则返回 nil 。 |
4 |
eql 它接受两个参数,如果参数是eq,或者它们是具有相同值的相同类型的数字,或者它们是表示相同字符的字符对象,则返回t,否则返回nil。 |
5 |
evenp 它使用一个数字参数,如果参数为偶数则返回 t ,否则为 nil 。 |
6 |
oddp 它使用一个数字参数,如果参数为奇数,则返回 t ,否则为 nil 。 |
7 |
zerop 它使用一个数字参数,如果参数为零,则返回 t ,否则为 nil 。 |
8 |
null 它使用一个参数,如果该参数的值为nil,则返回 t ,否则返回 nil 。 |
9 |
listp 它接受一个参数,如果该参数求值为列表,则返回 t ,否则返回 nil 。 |
10 |
greaterp 它使用一个或多个参数,如果有单个参数或者参数从左到右依次变大,则返回 t ,否则返回 nil 。 |
11 |
lessp 它使用一个或多个参数,如果有一个参数或者参数从左到右依次变小,则返回 t ,否则返回 nil 。 |
12 |
numberp 它使用一个参数,如果参数为数字,则返回 t ,否则为 nil 。 |
13 |
symbolp 它接受一个参数,如果该参数是一个符号,则返回 t ,否则返回 nil 。 |
14 |
integerp 它接受一个参数,如果参数是整数,则返回 t ,否则返回 nil 。 |
15 |
rationalp 它接受一个参数,如果参数是有理数(比率或数字),则返回 t ,否则返回 nil 。 |
16 |
floatp 它使用一个参数,如果参数是浮点数,则返回 t ,否则返回 nil 。 |
17 |
realp 它使用一个参数,如果参数是实数,则返回 t ,否则返回 nil 。 |
18 |
complexp 它使用一个参数,如果参数是复数,则返回 t ,否则返回 nil。 |
19 |
characterp 它使用一个参数,如果参数是字符,则返回 t ,否则返回 nil 。 |
20 |
stringp 它使用一个参数,如果该参数是字符串对象,则返回 t ,否则返回 nil 。 |
21 |
arrayp 它使用一个参数,如果参数是数组对象,则返回 t ,否则返回 nil 。 |
22 |
packagep 它接受一个参数,如果该参数是一个包,则返回 t ,否则返回 nil。 |
示例1
创建一个名为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 ))
当您执行代码时,它返回以下输出-
T
NIL
T
NIL
T
NIL
NIL
NIL
T
示例2
创建一个名为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))
当您执行代码时,它返回以下输出-
Factorial 6 is: 720