Next: 7 シンボルの関数定義
Up: ソフトウェア特論 講義資料 クロージャ,オブジェクト指向
Previous: 5 スコープ,バインディング,エクステント
これまでquoteやfunctionなどは,' や
' という
記号により入力が簡単になっていました.これらは
読み込み時にその文字を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日