LISP

このエントリーをはてなブックマークに追加
501
・((lambda (x) x) a)

x 内の x を a に置き換える。つまり、 a。
a を評価すると、変数aにバインドされてる値を返す。

・ ((lambda (x) x) 'a)

x 内の x を 'a に置き換える。つまり、 'a。
'a は何度評価しようとも 'a のまま変わらず。

・((lambda (x) ((lambda (y) y) x)) 'a)

まず ((lambda (y) y) x)。y 内の y を x に置き換える。つまり x。
するとコレは ((lambda (x) x) 'a) となる。あとは上の例と同様で、結果は 'a。

---------------------------------

> (quote a)
> の評価結果はaですよね?

そうではないですね。>>495氏の説明の通り。
↓納得いかなければこんなのでも試してみるよろし。
(setq a 123)
(+ (quote a) 1)