【问题标题】:Elisp: referencing previous variables inside let [duplicate]Elisp:在 let [重复] 中引用以前的变量
【发布时间】:2013-09-22 08:05:48
【问题描述】:

我想在let中定义两个变量,其中一个取决于另一个的值,像这样:

(let ((a (func))
      (b (if (eq a 1) 2 3)))
  ...)    

显然这不是正确的做法,emacs 说a 是无效的。 这样做的正确方法是什么?

【问题讨论】:

  • 你应该使用let*
  • 下次请复制粘贴错误信息。

标签: elisp local-variables let


【解决方案1】:

是的,您需要使用let* instead of let

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

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

等价于

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多