Backquote and Comma Syntax
Allows the body of a macro to look like the expanded form.
(defmacro push (element stack)
‘(if (null ,stack) (setq ',stack '(,element))
(setq ,stack (cons ,element ,stack)) ) )
>(macroexpand '(push 5 s))
(IF (NULL S)(SETQ 'S '(5))(SETQ S (CONS 5 S)))
Backquote is like QUOTE but it allows subexpressions preceded by a comma to be evaluated.