2015-05-21 39 views
-2

如何将字符与Common Lisp进行比较? 我有谷歌它,发现有一些功能可以做比较,如char=char/=,char<,char>,char<=char>=。但是,我不能使用所有的功能就像:Common Lisp中的字符比较

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

如果键入命令者,CLISP只是给我的错误消息“论争的是不是一个字符”。为什么“A”不是一个角色? 我必须写(char= #\a #\a)才能使其工作。 我想做功能来做字符排序。

谢谢。 对不起,我的英语不好。

回答

6

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

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

参考:

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

谢谢,老兄!这真的很有用! –

0

您可以排序的列表这样的字符。

(sort (list #\b #\C#\a) #'char<) 
+0

但他没有一个字符列表,他有一个单字符名称的符号列表。 – Barmar