XLISP > XLISP 2.0  -  Contents  -  Reference  -  Previous | Next

backquote


Type:   -   special form (fsubr)
Source:   -   xlcont.c, xlread.c

Syntax

(backquote expr)
expr - an expression which is not evaluated except for comma and comma-at portions
returns - a copy of the template with comma and comma-at expressions expanded

Description

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 comma [,] or comma-at [,@]. comma will evaluate the portion of the expression the comma preceeds. If the portion is an atom or a list, it is placed as is within the expression. comma-at will evaluate the portion of the expression that the comma-at preceeds. The portion needs to be a list. The list is spliced into the expression. If the portion is not a list, comma-at will splice in nothing.

Examples

(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 backquote special form in the XLISP 2.0 manual.

  Back to Top


XLISP > XLISP 2.0  -  Contents  -  Reference  -  Previous | Next