[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.8 文字

Builtin Class: <char>
Reader Syntax: #\charname

[R5RS] リテラルの文字オブジェクトを表現します。

リーダーは#\に出会うと、まず次の文字を読み込みます。それが文字 ()[]{}" \|;# のいずれかならば、その文字自身となります。 そうでなければ、単語を構成しない文字に出会うまで文字が続けて読み込まれます。 もし一文字しか読まれなければ、その文字自身となります。そうでなければ その単語が文字の名前として解釈されます。 それが有効な文字の名前でなければエラーとなります。

以下の文字の名前が認識されます。これらの文字の名前は大文字小文字を区別しません。

space

スペース (ASCII #x20)

newline, nl, lf

改行文字 (ASCII #x0a)

return, cr

復帰文字 (ASCII #x0d)

tab, ht

水平タブ (ASCII #x09)

page

フォームフィード、改ページ (ASCII #x0c)

escape, esc

エスケープ (ASCII #x1b)

delete, del

デリート (ASCII #x7f)

null

NUL文字 (ASCII #x00)

xN

N が16進表記の整数であるとき、内部エンコーディングが整数N であるような文字。この表記はASCII文字の範囲の外では、内部エンコーディングが異なる 処理系間で互換性が無いことに注意して下さい。

uN

Nが4桁または8桁の16進数整数であるとき、UCSコードNであるような文字。 Gaucheの内部エンコーディングがUTF-8以外でコンパイルされている場合には、 リーダーはgauche.charconvモジュールを使ってUnicodeを内部エンコーディングへと 変換します。Unicodeの該当する文字が内部エンコーディングで定義されていない場合、 代替文字に置換されるか、エラーとなります。

 
#\newline ⇒ #\newline ; 改行文字
#\x0a     ⇒ #\newline ; 改行文字
#\x41     ⇒ #\A       ; ASCII文字 'A'
#\u0041   ⇒ #\A       ; ASCII文字 'A', UCSコード
#\u3042   ⇒ #\あ      ; 平仮名「あ」, UCSコード
#\u0002a6b2 ⇒ ; JISX0213 2-94-86 UCS4コード

プログラムテキストがGaucheの内部エンコーディングと同じエンコーディングで 書かれていれば、マルチバイト文字を直接表記することもできます。

 
#\あ ⇒ ; 文字「あ」
Function: char? obj

[R5RS] objが文字なら#tを、そうでなければ#fを返します。

Function: char=? char1 char2
Function: char<? char1 char2
Function: char<=? char1 char2
Function: char>? char1 char2
Function: char>=? char1 char2

[R5RS] 文字を比較します。比較は内部の文字エンコーディングで行われます。

Function: char-ci=? char1 char2
Function: char-ci<? char1 char2
Function: char-ci<=? char1 char2
Function: char-ci>? char1 char2
Function: char-ci>=? char1 char2

[R5RS] 文字を、大文字小文字を区別せずに比較します。 現在のバージョンではASCII文字の範囲外における大文字小文字の扱いが きちんと定義されていないことに注意して下さい。

Function: char-alphabetic? char
Function: char-numeric? char
Function: char-whitespace? char
Function: char-upper-case? char
Function: char-lower-case? char

[R5RS] 文字charがそれぞれ英字([A-Za-z])、数字([0-9])、 空白文字、大文字および小文字の時に真の値を返します。 今のところ、これらの手続きはASCII文字のみで動作します。 それ以外の文字に対しては#fが返されます。

Function: char->integer char
Function: integer->char n

[R5RS] char->integerは文字charの内部エンコーディングに対応する 整数値を返します。integer->charは数値nと内部エンコーディングが 同じ文字を返します。有効な文字charに対して以下の式は常に真となります。

 
(eq? char (integer->char (char->integer char)))

対応する内部エンコーディングを持つ文字が無い数値をinteger->charに渡した 場合の結果は不定です。

Function: char->ucs char
Function: ucs->char n

それぞれ、文字charをUCSコードポイントを表す整数へ変換し、 またUCSコードポイントを表す整数nを文字へと変換する手続きです。

Gaucheの内部文字エンコーディングがUTF-8でコンパイルされている場合は、 これらの手続きはそれぞれchar->integerおよびinteger->char と等価です。

Gaucheの内部文字エンコーディングがUTF-8でない場合、 これらの手続きはgauche.charconvモジュールを使って 内部文字コードとUCSとの変換を行います (gauche.charconv - 文字コード変換参照)。 charが対応するUCSコードを持っていない場合、char->ucs#fを 返します。UCSコードnに対応する文字が内部エンコーディングで定義されていない 場合、変換ルーチンが代替文字を提供していればそれを、そうでなければ#f が返されます。

Function: char-upcase char
Function: char-downcase char

[R5RS] charの大文字と小文字をそれぞれ返します。charに大文字小文字の区別が 無ければcharがそのまま返されます。

現在のバージョンではASCII文字の範囲外における大文字小文字の扱いが きちんと定義されていないことに注意して下さい。

Function: digit->integer char &optional (radix 10)

文字charradix進数の数字を構成するのに有効な文字であれば、 対応する整数が、そうでなければ#fが返されます。

 
(digit->integer #\4) ⇒ 4
(digit->integer #\e 16) ⇒ 14
(digit->integer #\9 8) ⇒ #f

Common Lispには同様の手続きがdigit-char-pというやや曖昧な名で定義されています。

Function: integer->digit integer &optional (radix 10)

digit->integerの逆です。整数integerradix進数 ひと桁で 表現するのに使われる文字を返します。integerがひと桁で表現できない数値の場合は #fが返されます。

 
(integer->digit 13 16) ⇒ #\d
(integer->digit 10) ⇒ #f

Common Lispのdigit-charに当たります。

Function: gauche-character-encoding

コンパイル時に選択された内部文字エンコーディングを表すシンボルを返します。 返される値は以下のいずれかです。

euc-jp

EUC-JP

utf-8

UTF-8

sjis

Shift JIS

none

マルチバイトキャラクタをサポートしない(8ビット固定長文字)。

Function: supported-character-encodings

ネイティブなマルチバイトエンコーディングスキームでサポートされている 文字エンコーディングスキームの名前を表す文字列のリストを返します。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated by Shiro Kawai on November, 22 2009 using texi2html 1.78.