2009-05-26 2 views
58

は、私は多くの異なった事を実行したいと思います「もし」場合がある:elisp 'if'ステートメントに複数のステートメントを書く方法はありますか? elispので

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

しかし、(DO--何かを)だけで、他の-場合に実行されるが。実行する命令ブロックをどのように指定できますか?たとえば、次のように

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

答えて

71

使用progn

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

必要な一切elseはありません場合は、それを使用する方が読みやすいかもしれません:

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

そして、逆

(unless (not condition) 
    (do-something) 
    (do-something-else)) 
があります

Emacs Lisp manual for conditionalsをチェックしてください。

+2

FWIWでは、* Common Lispで提案されている*、戻り値が重要でない場合(つまり、副作用のみに使用されている場合) 'when'と' unless'を使用する言語規約に従います。戻り値が重要な場合は、通常、 'and'と' or'を使います。複数の枝がある場合(戻り値が重要であるかどうかにかかわらず)、一般に 'if'と' cond'を使います。 – Drew

関連する問題