Elisp:在let语句中引用先前的变量

8
我希望在let中定义两个变量,其中一个变量的值取决于另一个变量的值,例如:
(let ((a (func))
      (b (if (eq a 1) 2 3)))
  ...)    

很明显这不是正确的做法,Emacs显示a是无效的。 正确的做法是什么?

1
你应该使用 let* - abo-abo
下次请复制并粘贴错误信息。 - sds
1个回答

15

是的,您需要使用 let* 而不是 let

本质上,let* 是嵌套 let 的一种快捷方式:

(let ((a 1))
  (let ((b (1+ a)))
    (let ((c (* 2 b)))
      ...)))

等同于

(let* ((a 1)
       (b (1+ a))
       (c (* 2 b)))
  ...)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接