gpt4 book ai didi

emacs - elisp 中的变量绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 11:41:08 26 4
gpt4 key购买 nike

elisp 程序

(defun test (ee) (symbol-value ee))
(setq e 1.1)
(test 'e)

它的结果是 1.1

然后将test中的'ee'改成'e',

(defun test (e) (symbol-value e))
(setq e 1.1)
(test 'e)

它的结果是 电子

为什么会有不同的结果?

最佳答案

形式参数e 绑定(bind)到符号e,作为参数传递。在词法绑定(bind)关闭的情况下,当(symbol-value e)被求值时,形式参数e的值是符号e,即回来。 IOW,作为参数传递的符号与函数绑定(bind)的变量之间存在混淆(变量捕获)。

如果您使用不同的符号,例如ee,作为参数,则没有变量捕获。这是动态绑定(bind)为何令人困惑的主要示例。

关于emacs - elisp 中的变量绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20695258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com