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月7日