以下是我的课程笔记:
(let ((x 2) (y 3))
(let ((x 7) (z (+ x y)))
(* z x)))
答案得出35.有人可以向我解释一下吗? 所以在第二行z(+ x y),x值似乎是2,但在那之后(* z x)x值是7?非常感谢
答案 0 :(得分:4)
(let ((x 2) (y 3))
此处,第一个let
仍然负责,直到所有值都被绑定。
(let ((x 7) (z (+ x y)))
此处第二个let
负责。
(* z x)))
如果您希望在(x 7)
中使用(z (+ x y))
,请尝试let*
<强> TEST 强>
(let ((x 2) (y 3))
(let ((x 7) (z (+ x y)))
(* z x)))
> 35
(let ((x 2) (y 3))
(let* ((x 7) (z (+ x y)))
(* z x)))
> 70
希望它有所帮助。