Gimp2.6で使える関数
- 文字 -

 一覧にある関数はとりあえず、使えそうな関数です。
 現在のところ、確認は、2.6.10で行っています。


文字(charactor)は一文字を表すコード(Unicode)で、#x0〜#x10FFFF の範囲から、#xD800〜#xDFFFの範囲を除いた値をとります。

文字
文字定数 #\
文字定数の始まり

文字定数は #\ に続く文字で表されます。

#\文字 #\の後ろに書いた文字を表します。
#\a ⇒ a
#\( ⇒ (
#\8進数 #\の後ろにユニコードを8進数で書きます。
#\x16進数#\xの後ろにユニコードを16進数で書きます。
#\u16進数#\uの後ろにユニコードを4桁の16進数で書きます。
#\U16進数#\Uの後ろにユニコードを6桁の16進数で書きます。
#\nulASCII 0
#\nullASCII 0
#\backspaceASCII 8
#\tabASCII 9
#\newlineASCII 10
#\linefeedASCII 10
#\vtabASCII 11
#\pageASCII 12
#\returnASCII 13
#\spaceASCII 32
#\ruboutASCII 127
char? ( char? v )boolean
文字か?

v が文字の場合は #t、それ以外は #fを返す。

char->integer ( char->integer c)数値
文字コード

文字コードを返します。

>(char->integer #\A)
65
>(map char->integer  (string->list "漢字"))
(28450 23383)
integer->char ( integer->char code)char
指定コードの文字

指定コードの文字を返します。
残念ながら、漢字などは表示されませんが、機能としては働いています。

>(integer->char 65)
#\A
>(map integer->char '(28450 23383))
(#\" #\W)  ←オット!変だ
>(list->string (map integer->char '(28450 23383)))
"漢字" ←実は動いていた
char=? ( char=? achar [ bchar ]+ )boolean
文字が等しい

すべての引数が、同じコードならば #t、そうでなければ #f を返す。

>(char=? #\a #\a)
#t
>(char=? #\a #\A)
#f
>(char=? #\a #\a #\A)
#t	←オット、変だぞ

以下、比較関数が続きますが、いずれも、二つ以上の比較はうまく動きません!!。
本来は隣り合った引数のすべてに、指定の比較が成立すれば #t、そうでなければ #f を返します。

char<? ( char<? achar [ bchar ]+ )booelan
文字は小さいか

a が b より内部コードが小さければ #t、そうでなければ #f。

>(char>? #\A #\a)
#t
char<=? ( char<=? achar [ bchar ]+ )boolean
大きくない

a が b より内部コードが小さいか、等しければ #t、そうでなければ #f。

char>? ( char>? achar [ bchar ]+ )boolean
大きい

a が b より内部コードが大きければ #t、そうでなければ #f。

char>=? ( char>=? achar [ bchar ]+ )boolean
小さくない

a が b より内部コードが大きいか、等しければ #t、そうでなければ #f。

char-ci=? ( char-ci=? achar [ bchar ]+ )boolean
等しい

すべての引数が、大文字小文字を区分せずに等しければ #t、そうでなければ #f。
英字だけでなく、ギリシャ文字、ロシア文字などでも大文字小文字も判別はされるようです。

>(char-ci=? #\a #\A)
#t
>( apply char-ci=? (string->list "Ωω"))
#t
char-ci<? ( char-ci<? achar [ bchar ]+ )boolean
小さい

a が b より、大文字小文字を区分せずに小さければ #t、そうでなければ #f。

char-ci<=? ( char-ci<=? achar [ bchar ]+ )boolean
大きくない

a が b より、大文字小文字を区分せずに、小さいか、等しければ #t、そうでなければ #f。

char-ci>? ( char-ci>? achar [ bchar ]+ )boolean
大きい

a が b より、大文字小文字を区分せずに大きければ #t、そうでなければ #f。

char-ci>=? ( char-ci>=? achar [ bchar ]+ )boolean
小さくない

a が b より、大文字小文字を区分せずに、大きいか、等しければ #t、そうでなければ #f。

char-alphabetic? ( char-alphabetic? cchar )boolean
英語のアルファベットか?

文字がアルファベットに相当すれば #t、そうでなければ #f。

>(map char-alphabetic? (string->list "Ab0#A"))
(#t #t #f #f #t)

全角の文字(A)でもアルファベット扱いされています。

char-lower-case? ( char-lower-case? cchar )boolean
小文字か?

c が小文字ならば #t、そうでなければ #fを返す。
いわゆる半角英字以外も小文字の判定が行われます。

>(map char-lower-case? (string->list "aAωΩaA0"))
(#t #f #t #f #t #f #f)
半角英字以外も判定されていることがわかります。
char-upper-case? ( char-upper-case? cchar )boolean
大文字か?

c が大文字ならば #t、そうでなければ #fを返す。
いわゆる半角英字以外も小文字の判定が行われます。

>(map char-upper-case? (string->list "aAωΩaA0"))
(#f #t #f #t #f #t #f)
char-numeric? ( char-numeric? cchar )戻り値
数字か?

c が数字ならば #t、そうでなければ #fを返す。

>(map char-numeric? (string->list "abc00三V"))
(#f #f #f #t #t #f #f)

半角数字と全角数字が数字として判定されています。

char-whitespace? ( char-whitespace? cchar )boolean
空白か?

c が空白扱いされる文字ならば、#t、そうでなければ #t を返す。
空白扱いするのは、半角スペースと全角スペース、それと制御コードのようです。

>(map char-whitespace? (string->list " \t\x01[ ]"))
(#t #t #f #f #t #f)
char-upcase ( char-upcase cchar )char
大文字化

c を大文字にして返す。
半角英字以外も対象にしています。

>(list->string (map char-upcase (string->list "abcabcωбB")))
"ABCABCΩБB"

半角英字、全角英字、ギリシャ文字、ロシア文字が処理されています。ローマ数字のBは処理されませんでした。

char-downcase ( char-downcase cchar )戻り値
小文字化

c を小文字にして返す。
半角英字以外も対象にしています。

>(list->string (map char-downcase (string->list "ABCABCΩБV")))
"abcabcωбV"

アルゴ算法堂へ戻る