断言是针对某些特定条件测试其参数的函数,如果条件为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 链接:https://www.learnfk.comhttps://www.learnfk.com/lisp/lisp-predicates.html 来源:LearnFk无涯教程网 它使用一个参数,如果参数是字符,则返回 t ,否则返回 nil 。 |
20 | stringp 它使用一个参数,如果该参数是字符串对象,则返回 t ,否则返回 nil 。 |
21 | arrayp 它使用一个参数,如果参数是数组对象,则返回 t ,否则返回 nil 。 |
22 | packagep 它接受一个参数,如果该参数是一个包,则返回 t ,否则返回 nil。 |
创建一个名为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
创建一个名为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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)