我想在 let 中定义两个变量,其中一个取决于另一个的值,如下所示:
(let ((a (func))
(b (if (eq a 1) 2 3)))
...)
显然,这不是正确的做法,emacs 说a
是无效的。这样做的正确方法是什么?
我想在 let 中定义两个变量,其中一个取决于另一个的值,如下所示:
(let ((a (func))
(b (if (eq a 1) 2 3)))
...)
显然,这不是正确的做法,emacs 说a
是无效的。这样做的正确方法是什么?
是的,您需要使用let*
而不是let
.
本质上,let*
是嵌套let
s 的快捷方式:
(let ((a 1))
(let ((b (1+ a)))
(let ((c (* 2 b)))
...)))
相当于
(let* ((a 1)
(b (1+ a))
(c (* 2 b)))
...)