GNU Emacs Lisp におけるシンボルは、複数の目的で用いられるオブジェクトです。シ ンボルは、4 つの属性/セル (print 名セル、値セル、関数セル、プロパティーリスト セル) を持ちます。これらは(それぞれ)、他の Lisp オブジェクトを参照し、最初のも のを除き empty でありえます。シンボルは、これら 4 つのセルを独立に持つため、プ ログラム中で(ある)シンボルは(同時に)グローバル変数の値、関数、プロパティーリス ト、そしてそのシンボル自身を参照するのに用いることができます。
void は、セルが有意な値を持たないことを示すのに用いられます e.g., `このシンボ ルの値は void である'。シンボル void と間違わないようにしなくてはいけません。
ここでは print 名セルについて述べます。シンボルのこの他のセルに関しては、シン ボルに関するチャプターで述べます (チャプター 8 [シンボル]、ページ 65)。
print 名は、シンボルに対し最も明らかなものです。それはシンボルが渡された時に printer が出力するもので、 Lisp reader がシンボルを読み込む際、シンボルを (互 いに)区別するためのものです。 print 名セルは print 名の文字列を指します。 (こ のため) 名前は、(それが何であれ) 文字ストリングで構成されます。シンボルは、そ の print 名を(`"' を付けずに)入力(訳注:タイプ) して用います。
シンボルを読み込む際の規則は、ストリングを読み込む際のものと同じです。アルファ ベット文字は(全て)シンボル名の一部として読み込まれます。その他の文字は `\' で エスケープしてシンボル名に含むことができます。ストリングの場合と異なり、`\' の 意味はそれに続く 1文字をクォートすることに限られます。このため、タブ文字(TAB) を名前に含むシンボルを作るには、`\t' を用いることはできず、実際にタブを入力し なくてはいけません。シンボル名に普通の文字以外のものを含むのは(あまり)よくあり ません。
--------------------------------
CN: Common Lisp では、小文字は、 (明示的に "エスケープ" されない限り) 常に大文 字に "fold" されます。 GNU Emacs Lisp ではそうではありません。
------------------------
以下のものは(それぞれ)シンボルの print 表現です。
foo ;"foo" という名前のシンボル FOO ;foo とは異なる "FOO" という名前のシンボル char-to-string ;"char-to-string" という名前のシンボル 1+ ;"1+" という名前のシンボル +1 ;integer で シンボルではありません \+1 ;"+1" という名前のシンボル(うまい名前ではありません) \(*\ 1\ 2\) ;"(* 1 2)" という名前のシンボル(最悪の名前です) +-*/_~!@$%^&=:<>{} ;"+-*/_~!@$%^&=:<>{}" という名前のシンボル ; (通常の文字 (と + と -)) (訳注:??)