や他の言葉で:??それは(シンボル)の一部ではないとCLでの変数は可能ですは中Xです(((X ...)完全に具体化シンボルをLET
私は思います私はCLでの変数についての深遠な誤解を有することができる。
私は常にCLは一切の変数、記号のみ、およびシンボルは(他の特性の中で)持っている名前と(変数)値のセルを持っていないと思った。
と誰かが言ったとき"変数x
は値が" "と短いと思った" x
というシンボルの値のセル値は42 "です。
これはおそらく間違っています。
Iは
> (let ((a 42))
(type-of 'a))
SYMBOL
; caught STYLE-WARNING:
; The variable A is defined but never used.
を入力この例では、字句変数a
その値はセル42に設定されている完全に具体化シンボルでありますか?
警告The variable A is defined but never used
はそうでないことを示唆しており、字句変数はシンボルa
と同じではないと思われます。(type-of 'a)
。
これは、 'defun'、' lambda'、 'let'などで作成された字句変数がシンボルであるように見えるが、一度コンパイルされると、実際にはそうではないことを意味するのだろうか? – Frank
これは、関数呼び出しがソースコードのリストと同じように、単にソースコードのシンボルです。それらがコンパイルされると、すべて機械コードに変わり、レキシカル変数はスタック位置にすぎません。 – Barmar