如何将字符与Common Lisp进行比较?
我已谷歌了,发现有一些功能可以进行比较,例如char=
,char/=
,char<
,char>
,char<=
和{ {1}}。但是,我不能像以下那样使用所有功能:
char>=
如果我输入这些命令,CLISP只会给我错误消息“参数A不是一个字符”。为什么“A”不是角色?
我必须写(char= 'a 'a)
(char< 'a 'b)
来使其正常工作。
我想让函数进行字符排序。
谢谢。 抱歉我的英语不好。
答案 0 :(得分:6)
A
是一个符号,而不是一个角色。字符串函数将接受符号并使用符号的名称,但字符函数仅接受使用#\
语法输入的真实字符对象。所以你可以这样做:
(string< 'a 'a)
(string< 'a 'b)
供参考:
#\a
=&gt;字符"a"
=&gt;串a
=&gt;符号答案 1 :(得分:0)
你可以对这样的字符列表进行排序。
(sort (list #\b #\c #\a) #'char<)