我希望在let中定义两个变量,其中一个变量的值取决于另一个变量的值,例如:
很明显这不是正确的做法,Emacs显示
(let ((a (func))
(b (if (eq a 1) 2 3)))
...)
很明显这不是正确的做法,Emacs显示
a
是无效的。
正确的做法是什么?(let ((a (func))
(b (if (eq a 1) 2 3)))
...)
a
是无效的。
正确的做法是什么?是的,您需要使用 let*
而不是 let
。
本质上,let*
是嵌套 let
的一种快捷方式:
(let ((a 1))
(let ((b (1+ a)))
(let ((c (* 2 b)))
...)))
等同于
(let* ((a 1)
(b (1+ a))
(c (* 2 b)))
...)
let*
。 - abo-abo