gpt4 book ai didi

common-lisp - Lisp 中的词法绑定(bind)

转载 作者:行者123 更新时间:2023-12-02 07:26:52 24 4
gpt4 key购买 nike

(let ((a 3))
(let ((a 4)
(b a))
(+ a b)))

以上代码的计算结果为 7,逻辑是 b 取外层 a 的值。根据我的理解,在词汇绑定(bind)中,每次使用“let”都会创建一个新位置。那么为什么语句(b a)中的变量b没有使用(a 4)a的值>?

最佳答案

因为这就是 LET 指定要做的事情。绑定(bind)是并行的。

CL-USER 60 > (let ((a 3))
(let ((a 4)
(b a))
(+ a b)))
7

顺序方式完成绑定(bind)的版本称为LET*

CL-USER 61 > (let ((a 3))
(let* ((a 4)
(b a))
(+ a b)))
8

参见 Special Operator LET, LET* .

关于common-lisp - Lisp 中的词法绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27344530/

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