next up previous
Next: 7 シンボルの関数定義 Up: ソフトウェア特論 講義資料 クロージャ,オブジェクト指向 Previous: 5 スコープ,バインディング,エクステント

6 リードマクロ

これまでquoteやfunctionなどは,' や $\sharp$' という 記号により入力が簡単になっていました.これらは 読み込み時にその文字をquoteやfunctionへ変換している ということでリードマクロと呼ばれます. リードマクロはCommon Lispのすべての文字に対して適用 することができますが,よく使うのは,バッククオート(`), カンマ(,),カンマとアットマーク(,@)などです.

> (setq a '(* 1 2 3))

(* 1 2 3)
> (eval a)

6
> '(a a a)

(A A A)
> '(a ,a a)

*** - READ: comma is illegal outside of backquote

> `(a ,a a)

(A (* 1 2 3) A)
> `(a ,@a a)

(A * 1 2 3 A)
> `(a ,,a a)

*** - READ: more commas out than backquotes in,
 is illegal


generated through LaTeX2HTML. M.Inaba 平成18年5月6日