next up previous
Next: 3.1 マクロを取り扱うインタプリタの構造 Up: ソフトウェア特論 講義資料 Scheme言語とインタプリタ Previous: 2.3 手続きを引数とする手続きの定義と実行例

3 マクロ機能の追加

スペシャルフォームは特別扱いされる基本手続きですが,それ以外は,フォー ムの第一項と第二項以降をすべて評価して第一項が関数本体であり,第二項以 降がすべてその関数への引数として渡されるという方針ですべてが扱われます. しかし,引数をすべて評価したくない基本手続きを作りたい場合には, 引数を評価しない形で特別扱いし,その特別扱いもあるひとつの方針に そって解釈できるようん仕組みを作るということを考えます. そのひとつが,CommonLispでよく使っているマクロ機構です. マクロフォーム(手続き)は,その定義自体を一度評価し,さらにもう一度評 価することで実行されます.最初の評価を,その手続きのマクロ展開 と呼びます.つまり,マクロフォームの解釈は,そのフォームをマクロ展開し, その展開されたものを通常どおり評価するという形でなされます.



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