Go to the first, previous, next, last section, table of contents.

シンボルの構成要素

シンボルは、4 つの構成要素 (もしくは属性、もしくはセル) を持ち、それぞれ他のオ ブジェクトを指します。

print 名セルに関しては、Lisp オブジェクトのタイプに関するチャプター (セクショ ン 2.7 [シンボルタイプ]、ページ 15 参照)で述べました。

シンボルに関する(1つ)本質的な点は、ある print 名を持つシンボルは一意である(別 のシンボルが同じ print 名を持つことはない) という点です。 Lisp reader は、ある 名前を読み込む際(常に)、新しいシンボルを作る前に "その名前を持つシンボルが存在 していないか否か" を調べ、存在してないことを保証します。 (GNU Emacs Lisp で は、obarray を用いるハッシングのアルゴリズムでこれを行ないます。セクション 8.4 [obarray]、ページ 68 参照)

シンボルの(他の)3つのセルはどんな Lisp オブジェクトを指すのに用いてもかまいま せん。シンボルが関数名として用いられる場合、 (通常)関数セルは (Lisp Evaluator がそこにそれがあることを期待する) 関数への参照を持ちます。しかし、この他の方法 に関してはセクション 3.2.3.1 [関数コール]、ページ 27 を参照して下さい。キー ボードマクロ(セクション 17.7 [キーボードマクロ]、ページ 153) やキーマップ(チャ プター 18 [キーマップ] ページ155) もシンボルの関数セルにストアされることがあり ます。

同様に、プロパティーリストは (いくつかの関数はそこにプロパティーリストがあるこ とを期待するため) 通常正しくフォーマットされたプロパティリストを指します (セク ション 8.5 [プロパティーリスト]、ページ 69 参照)。値セルはそれが存在する場合、

シンボルのグローバル値を持ちます。これはどんな Lisp オブジェクトであってもかま いません (セクション 9.2 [グローバル変数]、ページ 73参照)。

(しばしば)シンボル foo の関数セルから参照されている関数のことを関数 foo と呼び ます。同じことが値セルやプロパティーリストに対しても行なわれます。必要な場合に のみ区別が行なわれます。

以下に、シンボルの構成要素のサマリと、その各々に関しさらに情報を得るためにはど こを見ればよいかを示します。

名前

      読み込みや表示の際、そのシンボルを示すのに用いられる文字ストリング。

      シンボルのグローバル値。セクション 9.4 [symbol-value]、ページ 77 参照。

関数

      このシンボルが、(評価される)フォームの関数の位置や、 funcall, apply 等
      に対する最初のアーギュメントの位置に現われる場合、適用される関数。

プロパティーリスト

      このシンボルに関する(いくつかの)値を調べる (いくつかの)関数で用いられ
      るリスト。セクション 8.5 [symbol-plist]、ページ 69 参照。

Go to the first, previous, next, last section, table of contents.