gpt4 book ai didi

lisp - let、eval 和 quote 的行为

转载 作者:太空宇宙 更新时间:2023-11-03 18:39:41 25 4
gpt4 key购买 nike

我试图理解 let 的行为。为什么 case2 会抛出错误?

;; case1: worked fine.
(let ((NF 5)) NF)
5

;; case2: got an error
(let ((NF 5)) (eval 'NF))
error: The variable NF is unbound

最佳答案

EVAL 无法访问词法变量。 CLHS说:

Evaluates form in the current dynamic environment and the null lexical environment.

如果您声明变量 special 它将起作用,因为这执行动态绑定(bind)而不是词法绑定(bind)。

(let ((NF 5))
(declare (special NF))
(eval 'NF))
5

关于lisp - let、eval 和 quote 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27907764/

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