问题
In elisp, there is an 'if' case where I would like to perform many different things:
(if condition
(do-something)
(do-something-else)
...)
However, (do-something-else) is executed in the else-case only. How can you specify a block of instructions to execute? For example:
(if condition
(begin
(do-something)
(do-something-else)
...))
回答1:
Use progn:
(if condition
(progn
(do-something)
(do-something-else)))
回答2:
If there's no else required, it might be more readable to use:
(when condition
(do-something)
(do-something-else))
And, there's the converse
(unless (not condition)
(do-something)
(do-something-else))
Check out the Emacs Lisp manual for conditionals.
来源:https://stackoverflow.com/questions/912355/how-can-you-write-multiple-statements-in-elisp-if-statement