Example: IF-N-Z-P
Let us now try to create a macro that will evaluate an arithmetic expression and then, depending on whether the value was negative, zero, or positive, evaluate one of three corresponding expressions.
(defmacro if-n-z-p (numexpr negform zeroform posform)
(list (list '< (eval numexpr) 0)
(list (list '= (eval numexpr) 0)
(list (list '> (eval numexpr) 0)
(list t '(print 'error)) ) )