LISP-文字

LISPでは、文字はタイプのデータオブジェクトとして表されます character.

文字自体の前の#\の前にある文字オブジェクトを示すことができます。たとえば、#\ aは文字aを意味します。

スペースやその他の特殊文字は、文字名の前に#\を付けることで示すことができます。たとえば、#\ SPACEはスペース文字を表します。

次の例はこれを示しています-

main.lispという名前の新しいソースコードファイルを作成し、その中に次のコードを入力します。

(write 'a)
(terpri)
(write #\a)
(terpri)
(write-char #\a)
(terpri)
(write-char 'a)

コードを実行すると、次の結果が返されます-

A
#\a
a
*** - WRITE-CHAR: argument A is not a character

特殊文字

Common LISPでは、コードで次の特殊文字を使用できます。それらは準標準文字と呼ばれます。

  • #\Backspace
  • #\Tab
  • #\Linefeed
  • #\Page
  • #\Return
  • #\Rubout

文字比較機能

<や>などの数値比較関数や演算子は文字では機能しません。Common LISPは、コード内の文字を比較するための他の2つの関数セットを提供します。

1つのセットでは大文字と小文字が区別され、もう1つのセットでは大文字と小文字が区別されません。

次の表に、関数-を示します。

大文字と小文字を区別する関数 大文字と小文字を区別しない関数 説明
char = char-equal オペランドの値がすべて等しいかどうかをチェックし、等しい場合は条件が真になります。
char / = char-not-equal オペランドの値がすべて異なるかどうかをチェックし、値が等しくない場合は条件が真になります。
char < char-lessp オペランドの値が単調に減少しているかどうかを確認します。
char> char-greaterp オペランドの値が単調に増加しているかどうかを確認します。
char <= char-not-greaterp 左のオペランドの値が次の右のオペランドの値以上であるかどうかを確認します。はいの場合、条件は真になります。
char> = char-not-lessp 左側のオペランドの値が右側のオペランドの値以下であるかどうかを確認します。そうである場合は、条件が真になります。

main.lispという名前の新しいソースコードファイルを作成し、その中に次のコードを入力します。

; case-sensitive comparison
(write (char= #\a #\b))
(terpri)
(write (char= #\a #\a))
(terpri)
(write (char= #\a #\A))
(terpri)
   
;case-insensitive comparision
(write (char-equal #\a #\A))
(terpri)
(write (char-equal #\a #\b))
(terpri)
(write (char-lessp #\a #\b #\c))
(terpri)
(write (char-greaterp #\a #\b #\c))

コードを実行すると、次の結果が返されます-

NIL
T
NIL
T
NIL
T
NIL