Lisp重新定义功能

用户名

有人可以帮助您了解这里发生了什么吗?

(DEFUN G(L)(+(CAR L)(CADR L)))
(SETQ H`F)(SET H `G)

我想知道评估时会发生什么(F`(2 3 4 5 6))

我已经在lisp解释器中编写了它,但是出现以下错误:

Undefined function F
雷纳·乔斯维格

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).

您所做的只是设置value F,而不是function F

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章