Next: , Previous: , Up: Variables   [Contents][Index]


11.2 Variables that Never Change

Emacs Lispでは、特定のシンボルは、通常は自分自身に評価されます。これらのシンボルにはnilt、同様に名前が‘:’で始まる任意のシンボル(これらはキーワードと呼ばれます)が含まれます。これらのシンボルは、リバインドや、値の変更はできません。niltへのセットやリバインドは、setting-constantエラーをシグナルします。これはキーワード(名前が‘:’で始まるシンボル)についても当てはまります。ただしキーワードが標準のobarrayにinternされている場合、そのようなシンボルを自分自身にセットしてもエラーになりません。

nil ≡ 'nil
     ⇒ nil
(setq nil 500)
error→ Attempt to set constant symbol: nil
Function: keywordp object

この関数は、objectが‘:’で始まる名前のシンボルで、標準のobarrayにinternされているの場合はt、それ以外はnilをreturnします。

これらの定数はスペシャルフォームdefconst(Defining Variablesを参照してください)を使用して定義された“定数(constant)”とは、根本的に異なります。defconstフォームは、人間の読み手に値の変更を意図しない変数であることを知らせる役目は果たしますが、実際にそれを変更しても、Emacsはエラーを起こしません。