シンボルが評価されるときは変数として扱われます。それが値をもつなら結果はその変数の値になります。そのシンボルが変数としての値をもたなければ、Lispインタープリターはエラーをシグナルします。変数の使用法についての情報は変数を参照してください。
以降の例ではsetq
でシンボルに値をセットしています。その後シンボルを評価してからをsetq
に戻します。
(setq a 123) ⇒ 123
(eval 'a) ⇒ 123
a ⇒ 123
シンボルnil
とt
は特別に扱われるので、nil
の値は常にnil
、t
の値は常にt
になります。これらに他の値をセットしたり、他の値にバインドすることはできません。したがってこの2つのシンボルは、(たとえeval
がそれらを他の任意のシンボルと同様に扱うとはいえ)自己評価フォームと同じように振る舞います。名前が‘:’で始まるシンボルも同じ方法で自己評価されます。そして、(通常は)値を変更できない点も同じです。変更不可な変数を参照してください。