How can you write multiple statements in elisp 'if' statement?

SyntaxElisp

Syntax Problem Overview


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

Syntax Solutions


Solution 1 - Syntax

Use progn:

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

Solution 2 - Syntax

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMartin CoteView Question on Stackoverflow
Solution 1 - SyntaxmipadiView Answer on Stackoverflow
Solution 2 - SyntaxTrey JacksonView Answer on Stackoverflow