gpt4 book ai didi

混淆 Let 和 Let* 的方案

转载 作者:行者123 更新时间:2023-12-05 00:02:27 27 4
gpt4 key购买 nike

(let ((x 2) (y 3)
(let ((x 7)
(z (+ x y)))
(* z x)))

使用上面的代码,为什么答案是 35,而不是 70?在第二个 let , x 是 7 所以 z 应该是 7 + 3 = 10,然后结果应该是 7 * 10 = 70。我知道有另一个是 let* 我在这 2 之间很困惑。样本是从谷歌抓取的。我已经谷歌了,但就是无法得到它。

最佳答案

扩展 Leppie 的回答:如果你写过

(let ((x 2) (y 3))
(let* ((x 7)
(z (+ x y)))
(* z x)))

你会得到你期望的答案。内部 let*完全等同于
(let ((x 7))
(let ((z (+ x y)))
(* z x)))

实际上可能在某些方案中以这种方式实现。

换句话说,在 let*在第一个绑定(bind)之后的每个后续绑定(bind)都在所有先前创建的绑定(bind)的范围内。

关于混淆 Let 和 Let* 的方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8036840/

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