在LISP中,字符被表示為字符類型的數(shù)據(jù)對象。
可以記#前字符本身之前的字符的對象。例如,#一個表示字符a。
空格和其它特殊字符可以通過#前面的字符的名稱前表示。例如,#空格代表空格字符。
下面的例子演示了這一點:
示例
創(chuàng)建一個名為main.lisp一個新的源代碼文件,并在其中輸入如下代碼:
(write 'a) (terpri) (write #a) (terpri) (write-char #a) (terpri) (write-char 'a)
當執(zhí)行以上代碼,它返回以下結果:
A #a a *** - WRITE-CHAR: argument A is not a character
Common Lisp允許使用以下特殊字符在代碼。他們被稱為半標準字符。
#Backspace
#Tab
#Linefeed
#Page
#Return
#Rubout
數(shù)字比較函數(shù)和運算符,如,< 和 >上字符不工作。 Common Lisp提供了另外兩組的功能,在代碼中比較字符。
一組是區(qū)分大小寫的,而另一個不區(qū)分大小寫。
下表提供的功能:
Case Sensitive Functions | Case-insensitive Functions | 描述 |
---|---|---|
char= | char-equal | 檢查如果操作數(shù)的值都相等與否,如果是的話那么條件為真。 |
char/= | char-not-equal | 檢查如果操作數(shù)的值都不同,或沒有,如果值不相等,則條件為真。 |
char< | char-lessp | 檢查如果操作數(shù)的值單調遞減。 |
char> | char-greaterp | 檢查如果操作數(shù)的值單調遞增。 |
char<= | char-not-greaterp | 如有左操作數(shù)的值大于或等于下一個右操作數(shù)的值,如果是則條件為真檢查。 |
char>= | char-not-lessp | 如有左操作數(shù)的值小于或等于其右操作數(shù)的值,如果是,則條件為真檢查。 |
示例
創(chuàng)建一個名為main.lisp一個新的源代碼文件,并在其中輸入如下代碼:
; case-sensitive comparison (write (char= #a #)) (terpri) (write (char= #a #a)) (terpri) (write (char= #a #A)) (terpri) ;case-insensitive comparision (write (char-equal #a #A)) (terpri) (write (char-equal #a #)) (terpri) (write (char-lessp #a # #c)) (terpri) (write (char-greaterp #a # #c))
當執(zhí)行以上代碼,它返回以下結果:
NIL
T
NIL
T
NIL
T
NIL