我运行以下CLISP代码,但结果对我来说很奇怪。
(setq a 'b)
(setq b 'c)
(setq c 'd)
(setq d 8)
(eval a)
(eval c)
(eval (eval a))
最后三行的输出是:
C
8
D
我如何理解输出?
最后两行怎么会有不同的输出?
请帮助解释这一点,非常感谢!
答案 0 :(得分:4)
评估(eval c)
c
->符号D
的值D
->号码 8 评估(eval (eval a))
a
->符号B
的值B
->符号C
呼叫EVAL C
->符号 D Lisp的一些基本评估规则
(foo-function arg)
首先评估参数,然后使用该评估参数调用函数foo-function
(quote something)
按原样返回something
(无论是什么)