当前位置: 首页 > 文档资料 > LISP 中文教程 >

人物(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