2009-05-26 25 views
58

W Elisp istnieje „czy” przypadek, w którym chciałbym wykonać wiele różnych rzeczy:Jak napisać wiele instrukcji w elepie "if"?

(if condition 
    (do-something) 
    (do-something-else) 
    ...) 

Jednak (zrób coś-else) jest wykonywany w jedynym innym przypadku. Jak określić blok instrukcji do wykonania? Na przykład:

(if condition 
    (begin 
     (do-something) 
     (do-something-else) 
     ...)) 

Odpowiedz

71

Korzystanie progn:

(if condition 
    (progn 
     (do-something) 
     (do-something-else))) 
42

Jeśli nie ma else wymagane, może być bardziej czytelny w obsłudze:

(when condition 
    (do-something) 
    (do-something-else)) 

I tam odwrotne

(unless (not condition) 
    (do-something) 
    (do-something-else)) 

Zapoznaj się z Emacs Lisp manual for conditionals.

+2

FWIW, generalnie podążam za konwencją sugerowaną w * Common Lisp The Language * używania 'when' i' unless', gdy zwracana wartość nie jest ważna (tj. Są używane tylko w przypadku efektów ubocznych). Generalnie używam 'i' oraz' lub', gdy zwracana jest wartość. Generalnie używam 'if' i' cond', gdy istnieje wiele gałęzi (niezależnie od tego, czy wartość zwracana jest ważna). – Drew

Powiązane problemy