鍍金池/ 教程/ Java/ LISP - 字符
LISP - 樹
LISP - 錯誤處理
LISP - 謂詞
LISP - 決策
LISP - 變量
LISP - 數(shù)組
LISP - 對象系統(tǒng)(CLOS)
LISP - 輸入和輸出
Lisp教程
LISP - 數(shù)字
LISP - 循環(huán)
LISP - 常量
LISP - 集合
LISP - 字符
LISP - 程序結構
LISP - 文件I/O
LISP - 哈希表
LISP - 宏
LISP - 數(shù)據(jù)類型
LISP - 包
LISP - 符號
LISP - 運算符
LISP - 基本語法
LISP - 函數(shù)
LISP - 向量
LISP - 結構
LISP - 概述介紹

LISP - 字符

在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ù)字比較函數(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

上一篇:LISP - 變量下一篇:LISP - 哈希表