10. 文字とシンボル(Characters and Symbols)

文字(Characters)

比較演算の解説も見よ。 そこで文字の比較も論じられている。

<character>	[Instantiable Class]
<character><object>の部分クラスである。
as-uppercase  character  => uppercase-character [G.F. Method]
as-uppercase<character>に対するメソッドはcharacterに 対応する大文字を返す。characterが既に大文字であるか、大文字小文字両方はない という時は変更されずにそのまま返される。
as-lowercase character  =>  lowercase-character [G.F. Method]
as-lowercase<character>に対するメソッドはcharacterに 対応する小文字を返す。characterが既に小文字であるか、大文字小文字両方はないという 時は変更されずにそのまま返される。

as  <integer> character  =>  integer [G.F. Method]
as上のこのメソッドはcharacterに対応する数値を返す。 返される数値は処理系依存である。

as   <character> integer   => character	[G.F. Method]
as上のこのメソッドはintegerに対応する文字を返す。 integerの意味は処理系依存である。

シンボル(Symbols)

<symbol>クラスは組み込みの、大文字小文字を区別しない辞書を提供する。 この辞書は文字列に対して、==(このほうが文字列比較ルーチンを呼ぶよりも早いはず) で比較でき、一意的な、変異しないオブジェクトを対応させる。この辞書にはas関数を 通して次のようにアクセスできる。すなわち、as(<symbol>, string) もしくは as(<string>, symbol)である。任意の文字列を 用いることができ、変数名として許されていないものでもよい。

変数名で許されているのと同じ制限文字セットを用いているシンボルに対しては、 キーワード構文foo:(シンボルの次に:が来る)を文法でキーワードが 許されている場所ならどこにでも使える。最後のコロンはシンボルの一部ではない。

? example: == #"Example"
#t
シンボルの大文字小文字の区別はシンボルが最初に入力された時から記憶される。 as(<string>, symbol)はもとの活字(大文字または小文字)を返す。

<symbol>	[Class]

<symbol><object>の部分クラスである。

as  <symbol> string   => symbol [G.F. Method]
as上のこのメソッドはstringという名を持つシンボルを返す。シンボルが まだ存在しなければ、作られる。as上のこのメソッドは同じ文字からなる文字列に 対してはアルファベットの大文字小文字にかかわらず、常に同じシンボルを返す。
? as (<symbol>, "foo")
#"foo"
? #"FOO" == as (<symbol>, "Foo")
#t
? #"Foo"
#"foo"
as   <string> symbol   => string [G.F. Method]
as上のこのメソッドはシンボルの名前を返す。それは文字列である。
? as (<string>, #"Foo")
"Foo"


目次 索引 (次章)