Syntax 如何在elisp';如果';陈述

Syntax 如何在elisp';如果';陈述,syntax,elisp,Syntax,Elisp,在elisp中,有一种“如果”情况,我希望执行许多不同的操作: (if condition (do-something) (do-something-else) ...) 但是,(doother)仅在else情况下执行。如何指定要执行的指令块?例如: (if condition (begin (do-something) (do-something-else) ...)) 使用progn: (if conditi

在elisp中,有一种“如果”情况,我希望执行许多不同的操作:

(if condition
    (do-something)
    (do-something-else)
    ...)
但是,(doother)仅在else情况下执行。如何指定要执行的指令块?例如:

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

使用
progn

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

如果不需要
else
,则可以使用:

(when condition
    (do-something)
    (do-something-else))
相反,情况正好相反

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

查看。

FWIW,我通常遵循Common Lisp中建议的约定,即在和时使用,除非时返回值不重要(即,它们仅用于副作用)。当返回值很重要时,我通常使用
以及
。当存在多个分支时(无论返回值是否重要),我通常使用
if
cond