LISP - 字符
在 LISP 中,字符表示为字符类型的数据对象。
您可以在字符本身之前的 #\ 之前表示字符对象。 例如#\a表示字符a。
空格和其他特殊字符可以在字符名称前加上 #\ 来表示。 例如,#\SPACE 表示空格字符。
以下示例演示了这一点 −
示例
创建一个名为 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 允许在代码中使用以下特殊字符。 他们被称为半标准字符。
- #\退格键
- #\Tab
- #\换行
- #\页
- #\返回
- #\Routout
字符比较函数
数字比较函数和运算符(例如 < 和 >)不适用于字符。 Common LISP 提供了另外两组函数来比较代码中的字符。
一组区分大小写,另一组不区分大小写。
下表提供了功能 −
区分大小写的函数 | 不区分大小写的函数 | 描述 |
---|---|---|
char= | char-equal | 检查操作数的值是否全部相等,如果相等则条件成立。 |
char/= | char-not-equal | 检查操作数的值是否全部不同,如果值不相等则条件成立。 |
char< | char-lessp | 检查操作数的值是否单调递减。 |
char> | char-greaterp | 检查操作数的值是否单调递增。 |
char<= | char-not-greaterp | 检查任何左操作数的值是否大于或等于下一个右操作数的值,如果是,则条件为真。 |
char>= | char-not-lessp | 检查任何左操作数的值是否小于或等于其右操作数的值,如果是,则条件为真。 |
示例
创建一个名为 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