GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Backquote.html ・ emacs-doc.conao3.com

10.4 Backquote

バッククォート構文を使うと、リストを引用しつつ、そのリストの要素を選択的に評価することができます。最も単純なケースでは、特殊形式 quote(前節で説明。引用を参照)と同じになります。例えば、次の2つの形式は同一の結果をもたらします:

`(a list of (+ 2 3) elements)
     ⇒ (a list of (+ 2 3) elements)
'(a list of (+ 2 3) elements)
     ⇒ (a list of (+ 2 3) elements)

バッククォートの引数内にある特殊マーカー ‘,’ は、定数ではない値であることを示します。Emacs Lisp 評価器は ‘,’ の引数を評価し、その値をリスト構造に格納します:

`(a list of ,(+ 2 3) elements)
     ⇒ (a list of 5 elements)

リスト構造のより深い階層においても、‘,’による置換が可能です。例えば:

`(1 2 (3 ,(+ 4 5)))
     ⇒ (1 2 (3 9))

また、特殊なマーカー ‘,@’ を使用して、評価済みの値を結果のリストに挿入することもできます。挿入されたリストの要素は、結果のリストの他の要素と同じ階層の要素となります。‘`’ を使用しない同等のコードは、しばしば可読性に欠けます。以下にいくつかの例を示します。

(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)

バッククォート構文は、共有される可能性があり、変更すべきではないコンス、ベクトル、文字列を返すという点で quote と同様に動作します。自己評価形式を参照してください。