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