elisp: Backquote

 
 9.4 Backquote
 =============
 
 “Backquote constructs” allow you to quote a list, but selectively
 evaluate elements of that list.  In the simplest case, it is identical
 to the special form ‘quote’ (described in the previous section; See
 Quoting).  For example, these two forms yield identical results:
 
      `(a list of (+ 2 3) elements)
           ⇒ (a list of (+ 2 3) elements)
      '(a list of (+ 2 3) elements)
           ⇒ (a list of (+ 2 3) elements)
 
    The special marker ‘,’ inside of the argument to backquote indicates
 a value that isn’t constant.  The Emacs Lisp evaluator evaluates the
 argument of ‘,’, and puts the value in the list structure:
 
      `(a list of ,(+ 2 3) elements)
           ⇒ (a list of 5 elements)
 
 Substitution with ‘,’ is allowed at deeper levels of the list structure
 also.  For example:
 
      `(1 2 (3 ,(+ 4 5)))
           ⇒ (1 2 (3 9))
 
    You can also “splice” an evaluated value into the resulting list,
 using the special marker ‘,@’.  The elements of the spliced list become
 elements at the same level as the other elements of the resulting list.
 The equivalent code without using ‘`’ is often unreadable.  Here are
 some examples:
 
      (setq some-list '(2 3))
           ⇒ (2 3)
      (cons 1 (append some-list '(4) some-list))
           ⇒ (1 2 3 4 2 3)
      `(1 ,@some-list 4 ,@some-list)
           ⇒ (1 2 3 4 2 3)
 
      (setq list '(hack foo bar))
           ⇒ (hack foo bar)
      (cons 'use
        (cons 'the
          (cons 'words (append (cdr list) '(as elements)))))
           ⇒ (use the words foo bar as elements)
      `(use the words ,@(cdr list) as elements)
           ⇒ (use the words foo bar as elements)