if
if test-form then-form [else-form] → {result}*
Test-form—a form.
Then-form—a form.
7.6.0 4Else-form—a form. The default is nil.
7.9.2 7 7.9.2 8results—if the test-form yielded true, the values returned by the then-form; otherwise, the values returned by the else-form.
if allows the execution of a form to be dependent on a single test-form.
7.6.0 3First test-form is evaluated. If the result is true, then then-form is selected; otherwise else-form is selected. Whichever form is selected is then evaluated.
(if t 1) → 1
(if nil 1 2) → 2
(defun test ()
(dolist (truth-value '(t nil 1 (a b c)))
(if truth-value (print 'true) (print 'false))
(prin1 truth-value))) → TEST
(test)
⊳ TRUE T
⊳ FALSE NIL
⊳ TRUE 1
⊳ TRUE (A B C)
→ NIL
None.
None.
!!! Barmar thinks we should encourage implementations to signal an error or issue a warning if additional subforms are detected.
(if test-form then-form else-form) ≡ (cond (test-form then-form) (t else-form))