📅  最后修改于: 2023-12-03 14:44:00.795000             🧑  作者: Mango
在 LISP 中,比较运算符用于比较两个值的大小、相等性或者是否包含。下面介绍常用的比较运算符。
=
用于判断两个值是否相等,返回 T
或者 NIL
;而 /=
用于判断两个值是否不等,返回 T
或者 NIL
。
(= 1 1) ; => T
(/= 1 2) ; => T
注意,=
和 /=
可以接受任意数量的参数,用于比较它们是否都相等或者都不相等。
用于比较两个数的大小关系。比较运算符的返回值为 T
或者 NIL
。
(> 1 2) ; => NIL
(>= 1 2) ; => NIL
(< 1 2) ; => T
(<= 1 2) ; => T
同样地,比较运算符可以接受多个参数进行比较。
LISP 中的字符串比较函数有 string-equal
和 string<
。其中 string-equal
用于判断两个字符串是否相等,而 string<
用于比较两个字符串的字典序大小关系。
(string-equal "hello" "Hello") ; => T
(string< "abc" "def") ; => T
LISP 中,比较两个列表的函数有 equal
和 equalp
。其中,equal
用于比较两个列表是否完全相同,equalp
比较两个列表是否结构相同并且成员相等。
(equal '(1 2 3) '(1 2 3)) ; => T
(equalp '(1 2 3) '(1 "2" 3)) ; => T
需要注意的是,equal
和 equalp
在比较列表时,不同空间中相同内容的列表并不相等。
(let ((lst1 '(1 2 3))
(lst2 '(1 2 3)))
(equal lst1 lst2)) ; => T
(let ((lst1 '(1 2 3))
(lst2 (list 1 2 3)))
(equal lst1 lst2)) ; => NIL
LISP 中,比较运算符有 =
, /=
, >
, >=
, <
和 <=
等函数。对于不同类型的数据,需要使用对应的比较函数,例如 string-equal
、string<
、equal
和 equalp
等。