Common Lisp 中的字符比较

Char Comparison in Common Lisp

如何将字符与 Common Lisp 进行比较? 我有 google 它,发现有一些函数可以进行比较,比如 char=char/=char<char>char<=,以及 char>=。但是,我不能像这样使用所有功能:

(char= 'a 'a)  
(char< 'a 'b)

如果我键入这些命令,CLISP 只会给我错误消息 "Argument A is not a character"。为什么 "A" 不是一个字符? 我必须像 (char= #\a #\a) 这样写才能让它工作。 我想制作功能来进行字符排序。

谢谢。 抱歉我的英语不好。

A是符号,不是字符。字符串函数将接受符号并使用符号的名称,但字符函数只接受使用 #\ 语法输入的真实字符对象。所以你可以这样做:

(string< 'a 'a)
(string< 'a 'b)

供参考:

  • #\a => 字符
  • "a" => 字符串
  • a => 符号

您可以像这样对字符列表进行排序。

(sort (list #\b #\c #\a) #'char<)