The 'backquote' special form returns 'expr' unevaluated, like
quote. The difference is that portions of
the expression may be evaluated when they are preceeded by a
(setq box 'stuff-inside) ; BOX contains STUFF-INSIDE (print box) ; prints STUFF-INSIDE (quote (i have the box)) ; returns (I HAVE THE BOX) (backquote (i have the box)) ; returns (I HAVE THE BOX) (backquote (I have (comma box))) ; returns (I HAVE STUFF-INSIDE) (backquote (I have the ,@box)) ; returns (I HAVE THE) (setq automobile '(a van)) ; set up AUTOMOBILE (backquote (I have automobile)) ; returns (I HAVE AUTOMOBILE) (backquote (I have (comma automobile))) ; returns (I HAVE (A VAN)) (backquote (I have ,@automobile)) ; returns (I HAVE A VAN) `(I have ,@automobile) ; returns (I HAVE A VAN)
Read macro: XLISP supports the normal read macro of a single reverse quote [`] as a short-hand method of writing the 'backquote' special form.
Note: 'backquote', comma and comma-at are very useful in defining macros via defmacro.
See the