chickadee » miscmacros » if*

(if* X Y [Z])syntax

The anaphoric if: if the expression X evaluates to a true value, the expression Y will be executed with the result of X bound to the variable it. If X is false, then Z (if supplied) will be evaluated:

 (if* (> 3 1) it)                      ==> #t
 (if* (memq 'a '(b a c)) (cdr it) 99)  ==> (c)
 (if* #f it 1)                         ==> 1
 (if* #f #f)                           ==> #<unspecified>