srfi.175
- ASCII文字ライブラリ ¶ASCII文字とASCIIコードポイントを扱うユーティリティを提供するモジュールです。 ASCIIだけを対象とする小さなScheme実装や、ASCIIだけを対象とするポータブルな コードを書きたい場合に便利です。
GaucheはUnicodeの全ての文字を扱えるので、Gauche用のコードを書いている時には 敢えてこのモジュールを使う必要は無いでしょう。互換性のために用意しています。
このモジュールに特徴的なのは、多くの手続きで、文字のかわりに整数を取れることです。 0と127の間の正確な整数はASCIIコードポイントと解釈されます。 それ以外の整数は非ASCIIコードポイントと解釈されます。 文字と整数の両方を取れる引数は、char-or-codeと表記しています。 例えばバイナリファイルの一部にASCIIテキストが含まれるものを扱う際に便利でしょう。
[SRFI-175]{srfi.175
}
objが0..127の範囲の正確な整数であれば#t
を、そうでなければ#f
を
返します。
[SRFI-175]{srfi.175
}
objがバイトベクタ(u8vector
)で、全ての要素が0..127の範囲に収まっていれば
#t
を、そうでなければ#f
を返します。
[SRFI-175]{srfi.175
}
objがASCII文字であれば#t
を、そうでなければ#f
を返します。
[SRFI-175]{srfi.175
}
objが文字列で、その中の全ての文字がASCII文字なら#t
を、そうでなければ
#f
を返します。
[SRFI-175]{srfi.175
}
char-or-codeがASCII制御文字の範囲なら#t
を、そうでなければ#f
を
返します。
(ascii-control? #\tab) ⇒ #t (ascii-control? #\A) ⇒ #f (ascii-control? 127) ⇒ #t (ascii-control? 255) ⇒ #f
#t
が返される文字の集合はchar-set:ascii-control
と
一致します (定義済み文字集合参照)。
[SRFI-175]{srfi.175
}
char-or-codeがASCIIの範囲でかつ制御文字でなければ#t
を、
そうでなければ#f
を
返します。
[SRFI-175]{srfi.175
}
char-or-codeがタブ文字かASCII空白文字であれば#t
を、
そうでなければ#f
を返します。
[SRFI-175]{srfi.175
}
char-or-codeがASCIIの範囲で、アルファベットと数字以外の
グラフィック文字であれば#t
を返します。
#t
が返される文字の集合は
(char-set-difference char-set:ascii-graphic char-set:ascii-letter+digit)
と
一致します (定義済み文字集合参照)。
[SRFI-175]{srfi.175
}
char-or-codeがASCIIアルファベットか数字であれば#t
を、
そうでなければ#f
を返します。
#t
が返される文字の集合は
char-set:ascii-letter+digit
と
一致します (定義済み文字集合参照)。
[SRFI-175]{srfi.175
}
char-or-codeが
#t
が返される文字の集合は
char-set:ascii-letter
と
一致します (定義済み文字集合参照)。
[SRFI-175]{srfi.175
}
Returns #t
iff char-or-code is in the ASCII digit range.
#t
が返される文字の集合は
char-set:ascii-digit
と
一致します (定義済み文字集合参照)。
[SRFI-175]{srfi.175
}
Returns #t
iff char-or-code is one of the ASCII whitespaces.
#t
が返される文字の集合は
char-set:ascii-whitespace
と
一致します (定義済み文字集合参照)。
[SRFI-175]{srfi.175
}
Returns #t
iff char-or-code is one of upper/lower case
ASCII alphabets.
#t
が返される文字の集合は
char-set:ascii-upper-case
/char-set:ascii-lower-case
と
一致します (定義済み文字集合参照)。
[SRFI-175]{srfi.175
}
各引数は文字かコードポイントです。引数がASCIIの大文字に相当する場合、それは対応する小文字の
コードポイントに変換され、その後コードポイント同士の比較結果が返されます。
二つの引数の型が一致している必要はありません。
ASCII範囲外の引数を渡すことは許されます。非ASCII文字は内部エンコーディングによるコードポイント に変換されます(大文字小文字は考慮されません)。非ASCII文字はASCII文字より大きい、 ということ以外、結果は処理系依存になります。
[SRFI-175]{srfi.175
}
ASCII文字の範囲で大文字小文字を考慮せずに、二つの文字列を比較します。
文字列は非ASCII文字を含んでいても構いません。それらについては大文字小文字の考慮はせず、
内部エンコーディングのコードポイントを使って比較します。
[SRFI-175]{srfi.175
}
引数がASCIIの大文字/小文字に相当する場合、対応する小文字/大文字の文字またはコードポイントを
返します。戻り値は引数と同じ型になります。
引数がそれ以外の文字に相当する場合は、そのまま返されます。
[SRFI-175]{srfi.175
}
ASCII制御文字(#\x00
, #\x01
.. #\x1f
,
and #\x7f
)はしばしば、
^@
, ^A
.. ^_
および ^?
のように
表記されます。これらの手続きは、制御文字とその表記 (^
の後に来る文字)とを
相互に変換するものです。
戻り値の型は引数と同じになります。
引数がASCII制御文字/制御文字に対応するASCII表示文字でなければ、#f
が返ります。
[SRFI-175]{srfi.175
}
ASCIIには4ペアの括弧があります。(
と)
、
{
と}
、[
と]
、そして<
と>
です。
引数char-or-codeがこれら8文字のいずれかに相当する場合に、
それと対になる文字またはコードポイントを返します。
戻り値の型は引数と同じになります。
引数が括弧の文字またはコードポイントでなければ、#f
が返されます。
[SRFI-175]{srfi.175
}
数値nを表すASCII数字文字を返します。nが0から9までの正確な整数でない
場合は#f
を返します。
(ascii-nth-digit 3) ⇒ #\3
integer->digit
(文字)も参照。
[SRFI-175]{srfi.175
}
(modulo n 26)
番目のASCII大文字/小文字アルファベットを返します。
(ascii-nth-upper-case 0) ⇒ #\A (ascii-nth-lower-case 1) ⇒ #\b (ascii-nth-upper-case 25) ⇒ #\Z (ascii-nth-lower-case 26) ⇒ #\a
integer->digit
(文字)も参照。
[SRFI-175]{srfi.175
}
char-or-codeがASCII数字文字またはそのコードポイントであり、
それが表す数値がlimit未満であればその数値を、
そうでなければ#f
を返します。
(ascii-digit-value #\5 10) ⇒ 5 (ascii-digit-value #\9 8) ⇒ #f (ascii-digit-value 48 10) ⇒ 0
digit->integer
(文字)も参照。
[SRFI-175]{srfi.175
}
char-or-codeがn番目のASCII大文字/小文字またはそのコードポイントで、
nがlimit未満であれば、(+ n offset)
を返します。
そうでなければ#f
を返します。
(ascii-upper-case-value #\E 10 6) ⇒ 14 (ascii-lower-case-value #\z 0 26) ⇒ 25
digit->integer
(文字)も参照。