&gt; One of the conditionals needs to be built-in.<p>That&#x27;s actually not true.  IF can be implemented in terms of LAMBDA.<p><pre><code>    (defun _true (then else) then)
    
    (defun _false (then else) else)
    
    (defmacro _if (condition then else)
      `(funcall (funcall (function ,condition) (lambda () ,then) (lambda () ,else))))
    
    ? (_if _true (print 123) (print 456))
    
    123 
    123
    ? (_if _false (print 123) (print 456))
    
    456 
    456
    ?</code></pre>