人物(Characters)
优质
小牛编辑
132浏览
2023-12-01
在LISP中,字符表示为character.类型的数据对象character.
您可以在字符本身之前表示#\前面的字符对象。 例如,#\ a表示字符a。
空格和其他特殊字符可以在字符名称前面的#\前面表示。 例如,#\ SPACE表示空格字符。
以下示例演示了这一点 -
例子 (Example)
创建一个名为main.lisp的新源代码文件,并在其中键入以下代码。
(write 'a)
(terpri)
(write #\a)
(terpri)
(write-char #\a)
(terpri)
(write-char 'a)
执行代码时,它返回以下结果 -
A
#\a
a
*** - WRITE-CHAR: argument A is not a character
特殊字符
Common LISP允许在代码中使用以下特殊字符。 它们被称为半标准字符。
- #\Backspace
- #\Tab
- #\Linefeed
- #\Page
- #\Return
- #\Rubout
字符比较函数 (Character Comparison Functions)
数字比较函数和运算符(如)不适用于字符。 Common LISP提供了另外两组函数来比较代码中的字符。
一组区分大小写,另一组不区分大小写。
下表提供了功能 -
区分大小写的函数 | 不区分大小写的函数 | 描述 |
---|---|---|
char= | char-equal | 检查操作数的值是否全等,如果是,则条件变为真。 |
char/= | char-not-equal | 检查操作数的值是否全部不同,如果值不相等则条件变为真。 |
char< | char-lessp | 检查操作数的值是否单调递减。 |
char> | char-greaterp | 检查操作数的值是否单调递增。 |
char<= | char-not-greaterp | 检查任何左操作数的值是否大于或等于下一个右操作数的值,如果是,则条件变为真。 |
char>= | char-not-lessp | 检查任何左操作数的值是否小于或等于其右操作数的值,如果是,则条件变为真。 |
例子 (Example)
创建一个名为main.lisp的新源代码文件,并在其中键入以下代码。
; case-sensitive comparison
(write (char= #\a #\b))
(terpri)
(write (char= #\a #\a))
(terpri)
(write (char= #\a #\A))
(terpri)
;case-insensitive comparision
(write (char-equal #\a #\A))
(terpri)
(write (char-equal #\a #\b))
(terpri)
(write (char-lessp #\a #\b #\c))
(terpri)
(write (char-greaterp #\a #\b #\c))
执行代码时,它返回以下结果 -
NIL
T
NIL
T
NIL
T
NIL