我对defun宏的工作原理感到困惑,因为:
(defun x () "hello")
将创建函数x,但符号x仍将未绑定。
如果我将一些lambda绑定到x上,则x将具有值,但解释器不会将其视为以下形式的函数:
(x)
我认为这与defun应该在全局环境中定义函数有关,但我不确定确切的意思是什么。为什么我不能在当前环境中阻止它?
是否有办法强制解释器将符号视为函数(如果某个lambda绑定到它)?例如:
(setq y (lambda () "I want to be a named function"))
(y)
顺便说一下:我正在使用SBCL。
$test
与test
命令/函数无关。 - Kaz