Common Lisp中的Char比较

时间:2015-05-21 01:13:10

标签: sorting char comparison lisp common-lisp

如何将字符与Common Lisp进行比较? 我已谷歌了,发现有一些功能可以进行比较,例如char=char/=char<char>char<=和{ {1}}。但是,我不能像以下那样使用所有功能:

char>=

如果我输入这些命令,CLISP只会给我错误消息“参数A不是一个字符”。为什么“A”不是角色? 我必须写(char= 'a 'a) (char< 'a 'b) 来使其正常工作。 我想让函数进行字符排序。

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

2 个答案:

答案 0 :(得分:6)

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

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

供参考:

  • #\a =&gt;字符
  • "a" =&gt;串
  • a =&gt;符号

答案 1 :(得分:0)

你可以对这样的字符列表进行排序。

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