
- LISP 教程
- LISP - 首頁
- LISP - 概述
- LISP - 環境
- LISP - 程式結構
- LISP - 基本語法
- LISP - 資料型別
- LISP - 宏
- LISP - 變數
- LISP - 常量
- LISP - 運算子
- LISP - 決策
- LISP - 迴圈
- LISP - 函式
- LISP - 謂詞
- LISP - 數字
- LISP - 字元
- LISP - 陣列
- LISP - 字串
- LISP - 序列
- LISP - 列表
- LISP - 符號
- LISP - 向量
- LISP - 集合
- LISP - 樹
- LISP - 雜湊表
- LISP - 輸入與輸出
- LISP - 檔案 I/O
- LISP - 結構體
- LISP - 包
- LISP - 錯誤處理
- LISP - CLOS
- LISP 有用資源
- Lisp - 快速指南
- Lisp - 有用資源
- Lisp - 討論
Lisp - 字元
在 LISP 中,字元表示為型別為character的資料物件。
您可以透過在字元本身之前新增 #\ 來表示字元物件。例如,#\a 表示字元 a。
空格和其他特殊字元可以透過在字元名稱之前新增 #\ 來表示。例如,#\SPACE 表示空格字元。
以下示例演示了這一點 -
示例
建立一個名為 main.lisp 的新原始碼檔案,並在其中鍵入以下程式碼。
main.lisp
; print A (write 'a) ; terminate printing (terpri) ; print #\a (write #\a) ; terminate printing (terpri) ; print char a (write-char #\a) ; terminate printing (terpri) ; error (write-char 'a)
輸出
執行程式碼時,它將返回以下結果 -
A #\a a *** - WRITE-CHAR: argument A is not a character
特殊字元
Common LISP 允許在程式碼中使用以下特殊字元。它們被稱為半標準字元。
- #\Backspace
- #\Tab
- #\Linefeed
- #\Page
- #\Return
- #\Rubout
字元比較函式
數值比較函式和運算子(如 < 和 >)不適用於字元。Common LISP 提供了另外兩組函式用於在程式碼中比較字元。
一組區分大小寫,另一組不區分大小寫。
下表提供了這些函式 -
區分大小寫函式 | 不區分大小寫函式 | 描述 |
---|---|---|
char= | char-equal | 檢查運算元的值是否都相等,如果相等則條件為真。 |
char/= | char-not-equal | 檢查運算元的值是否都不相等,如果值不相等則條件為真。 |
char< | char-lessp | 檢查運算元的值是否單調遞減。 |
char> | char-greaterp | 檢查運算元的值是否單調遞增。 |
char<= | char-not-greaterp | 檢查任何左側運算元的值是否大於或等於下一個右側運算元的值,如果大於或等於則條件為真。 |
char>= | char-not-lessp | 檢查任何左側運算元的值是否小於或等於其右側運算元的值,如果小於或等於則條件為真。 |
示例
更新名為 main.lisp 的原始碼檔案,並在其中鍵入以下程式碼。
main.lisp
; case-sensitive comparison ; compare and print a vs b (write (char= #\a #\b)) ; terminate printing (terpri) ; compare and print a vs a (write (char= #\a #\a)) ; terminate printing (terpri) ; compare and print a vs A (write (char= #\a #\A)) ; terminate printing (terpri) ;case-insensitive comparision ; compare and print a vs A (write (char-equal #\a #\A)) ; terminate printing (terpri) ; compare and print a vs b (write (char-equal #\a #\b)) ; terminate printing (terpri) ; check and print a vs b and c (write (char-lessp #\a #\b #\c)) ; terminate printing (terpri) ; check and print a vs b and c (write (char-greaterp #\a #\b #\c))
輸出
執行程式碼時,它將返回以下結果 -
NIL T NIL T NIL T NIL
廣告