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