【发布时间】:2012-06-28 02:07:45
【问题描述】:
我对 defun 宏的工作原理感到困惑,因为
(defun x () "hello")
将创建函数 x,但符号 x 仍然是未绑定的。
如果我将一些 lambda 绑定到 x,那么 x 将有一个值,但它不会被解释器视为如下形式的函数:
(x)
我认为这与 defun 应该在全局环境中定义函数这一事实有关,但我不确定它究竟是什么意思。为什么我不能在当前环境下对其进行影子?
如果某些 lambda 绑定到符号,是否有任何方法强制解释器将符号视为函数?例如:
(setq y (lambda () "I want to be a named function"))
(y)
P.S.:我正在使用 SBCL。
【问题讨论】:
标签: lisp common-lisp sbcl