Next: Local Variables, Previous: Global Variables, Up: Variables [Contents][Index]
Emacs
Lispでは、特定のシンボルは、通常は自分自身に評価されます。これらのシンボルにはnil
とt
、同様に名前が‘:’で始まる任意のシンボル(これらはキーワードと呼ばれます)が含まれます。これらのシンボルは、リバインドや、値の変更はできません。nil
やt
へのセットやリバインドは、setting-constant
エラーをシグナルします。これはキーワード(名前が‘:’で始まるシンボル)についても当てはまります。ただしキーワードが標準のobarrayにinternされている場合、そのようなシンボルを自分自身にセットしてもエラーになりません。
nil ≡ 'nil ⇒ nil
(setq nil 500) error→ Attempt to set constant symbol: nil
この関数は、objectが‘:’で始まる名前のシンボルで、標準のobarrayにinternされているの場合はt
、それ以外はnil
をreturnします。
これらの定数はスペシャルフォームdefconst
(Defining Variablesを参照してください)を使用して定義された“定数(constant)”とは、根本的に異なります。defconst
フォームは、人間の読み手に値の変更を意図しない変数であることを知らせる役目は果たしますが、実際にそれを変更しても、Emacsはエラーを起こしません。