在 lisp 中,我可以像这样绑定在闭包中绑定的自由变量......
(let ((x 1) (y 2) (z 3))
(defun free-variables () (+ x y z)))
(free-variables)
结果是 ...
6
我想知道是否可以动态检查绑定的闭包变量?
E.g.
(inspect-closure free-variables)
导致类似...
((x 1) (y 2) (z 3))
谢谢所以
通用语言
只能从同一范围内的函数访问闭包的内部变量(参见 Jeff 的回答)。即使那些也无法在某个地方查询这些变量。 Common Lisp 标准不提供此功能。
显然,在许多情况下,各个 Common Lisp 实现都知道如何获取此信息。例如,如果您查看 GNU Emacs 的 SLIME 代码(Common Lisp 开发环境),则代码为inspect and 回溯功能应该提供这一点。开发希望向用户/程序员展示这一点,Common Lisp 标准不提供该信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)