簡要說明。這是我嘗試在clisp中實習並使用符號的幾次嘗試。我在LISP中錯過了一些關於實習符號的重要事實嗎?
[1]> (setq sym (intern "foo"))
|foo|
[2]> (eq sym 'foo)
NIL
爲什麼?
[3]> (defun internup (me &optional (package *package*))
(intern (string-upcase me) package))
INTERNUP
[4]> (eq 'abc (internup "abc"))
T
可能必須保持正常。
[12]>(let ((abc 2))
(eval '(+ 2 abc)))
*** - EVAL: variable ABC has no value
The following restarts are available:
確定
[18]> (let ((abc 2))
(eval '(+ 2 'abc)))
*** - +: ABC is not a number
The following restarts are available:
有趣。我應該把它放在之前。
[14]> (setq a (internup "abc"))
ABC
[15]> (let ((abc 2))
(eval '(+ 2 a)))
*** - +: ABC is not a number
The following restarts are available:
再次錯誤。嗯,我必須錯過一些有關在LISP中實習符號的重要事實。你可以幫我嗎 ?
'(setf(symbol-value a)2)'w把'ABC'設置爲'2'。 – khachik 2011-04-12 17:20:45