2015-05-21 36 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