In elisp, the if statement logic only allows me an if case and else case.
(if (< 3 5)
; if case
(foo)
; else case
(bar))
but what if I want to do an else-if? Do I need to put a new if statement inside the else case? It just seems a little messy.
Since the parts of (if test-expression then-expression else-expression)
an else if
would be to nest a new if
as the else-expression
:
(if test-expression1
then-expression1
(if test-expression2
then-expression2
else-expression2))
In other languages the else if
is usually on the same level. In lisps we have cond
for that. Here is the exact same with a cond
:
(cond (test-expression1 then-expression1)
(test-expression2 then-expression2)
(t else-expression2))
Note that an expression can be just that. Any expression so often these are like (some-test-p some-variable)
and the other expressions usually are too. It's very seldom they are just single symbols to be evaluated but it can be for very simple conditionals.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With