2013-09-17 3 views
4

Я хотел бы определить две переменные, пусть один из которых зависит от значения другого, например, так:Elisp: ссылающихся предыдущие переменные внутри пусть

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

Очевидно, что это не правильный путь сделайте это, emacs говорит, что a недействителен. Каков правильный способ сделать это?

+0

Вы должны использовать '' пусть * –

+0

следующий раз, пожалуйста, скопировать и вставить сообщение об ошибке. – sds

ответ

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))) 
    ...)