有人可以帮助了解这里发生了什么吗?
(DEFUN G(L)(+(CAR L)(CADR L)))
(SETQ H`F)(SET H `G)
我想知道在评估时会发生什么(F`(2 3 4 5 6))
我已经在我的lisp解释器中写了它,但是我收到以下错误:
Undefined function F
答案 0 :(得分:5)
Common Lisp具有值的命名空间和函数的另一个命名空间。
CL-USER 49 > (DEFUN G(L)(+(CAR L)(CADR L)))
G
CL-USER 50 > (SETQ H 'F)
F
CL-USER 51 > (SET H 'G)
G
CL-USER 52 > F
G
CL-USER 53 > (symbol-value 'F)
G
CL-USER 54 > (symbol-function 'f)
Error: Undefined function F in form (SYMBOL-FUNCTION F).
您所做的只是设置F
的值,而不是函数F
。