Lisp - 比较运算符



下表显示了 LISP 支持的所有用于比较数字的关系运算符。但是,与其他语言中的关系运算符不同,LISP 比较运算符可以接受两个以上的操作数,并且它们仅适用于数字。

假设变量A的值为 10,变量B的值为 20,则 -

运算符 描述 示例
= 检查操作数的值是否都相等,如果相等则条件为真。 (= A B) 不为真。
/= 检查操作数的值是否都不相等,如果值不相等则条件为真。 (/= A B) 为真。
> 检查操作数的值是否单调递减。 (> A B) 不为真。
< 检查操作数的值是否单调递增。 (< A B) 为真。
>= 检查任何左侧操作数的值是否大于或等于下一个右侧操作数的值,如果大于或等于则条件为真。 (>= A B) 不为真。
<= 检查任何左侧操作数的值是否小于或等于其右侧操作数的值,如果小于或等于则条件为真。 (<= A B) 为真。
max 比较两个或多个参数并返回最大值。 (max A B) 返回 20
min 比较两个或多个参数并返回最小值。 (min A B) 返回 10

示例 - 等值比较

创建一个名为 main.lisp 的新源代码文件,并在其中输入以下代码。

main.lisp

; set a as 10
(setq a 10)
; set b as 20
(setq b 20)

; print equality of a and b
(format t "~% A = B is ~a" (= a b))
; print non-equality of a and b
(format t "~% A /= B is ~a" (/= a b))

输出

当您点击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行它,并返回以下结果:

A = B is NIL
A /= B is T

示例 - 大小比较

更新名为 main.lisp 的文件,并在其中输入以下代码。

main.lisp

; set a as 10
(setq a 10)

; set b as 20
(setq b 20)

; compare a with b for size and print result
(format t "~% A > B is ~a" (> a b))
(format t "~% A < B is ~a" (< a b))
(format t "~% A >= B is ~a" (>= a b))
(format t "~% A <= B is ~a" (<= a b))

输出

当您点击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行它,并返回以下结果:

A > B is NIL
A < B is T
A >= B is NIL
A <= B is T

示例 - 最小/最大计算

更新名为 main.lisp 的文件,并在其中输入以下代码。

main.lisp

; set a as 10
(setq a 10)
; set b as 20
(setq b 20)

; compute max of a and b and print the result
(format t "~% Max of A and B is ~d" (max a b))

; compute min of a and b and print the result
(format t "~% Min of A and B is ~d" (min a b))

输出

当您点击“执行”按钮或键入 Ctrl+E 时,LISP 会立即执行它,并返回以下结果:

Max of A and B is 20
Min of A and B is 10
lisp_operators.htm
广告