- 8.1 マックはじめて物語
- この寓話とてもいいよなぁ。寓話なんだけど、マクロの機構をありありと表現している。
- この寓話とてもいいよなぁ。寓話なんだけど、マクロの機構をありありと表現している。
- 8.2 マクロ展開時 vs. 実行時
- マクロってどこに格納されてたっけ? と思って調べてみると、シンボルのfunctionスロットだった。
- 相互参照したマクロはどうなるのだろうとためしてみると。
CL-USER(23): (defmacro hoge (var &rest body)
`(piyo ,var (progn ,@body)))
HOGE
CL-USER(24): (defmacro piyo (var &rest body)
`(hoge ,var (progn ,@body)))
PIYO
CL-USER(25): (macroexpand-1 '(hoge (x) (print x)))
(PIYO (X) (PROGN (PRINT X)))
T
CL-USER(26): (macroexpand '(hoge (x) (print x)))
16922048 bytes have been tenured, next gc will be global.
See the documentation for variable *GLOBAL-GC-BEHAVIOR* for more information.
16808512 bytes have been tenured, next gc will be global.
See the documentation for variable *GLOBAL-GC-BEHAVIOR* for more information.
16814144 bytes have been tenured, next gc will be global.
See the documentation for variable *GLOBAL-GC-BEHAVIOR* for more information.
Error: Received signal number 2 (Keyboard interrupt)
[condition type: INTERRUPT-SIGNAL]
Restart actions (select using :continue):
0: continue computation
1: Return to Top Level (an "abort" restart).
2: Abort entirely from this (lisp) process.
[1c] CL-USER(27): :reset
CL-USER(28):
うん。止まらない。
- マクロってどこに格納されてたっけ? と思って調べてみると、シンボルのfunctionスロットだった。
- 8.3 DEFMACRO
- 要旨:マクロを書くときの3ステップの紹介。
- 要旨:マクロを書くときの3ステップの紹介。
- 8.4 試しにマクロを書いてみる:do-primes
- 要旨:do-primesをまずは無邪気に書いてみる。
- 要旨:do-primesをまずは無邪気に書いてみる。
- 8.5 マクロのパラメータ
- 要旨:マクロのパラメータリストはdestructuring。
- 要旨:マクロのパラメータリストはdestructuring。
- 8.6 展開形の生成
- 要旨:バッククォート便利。
- 要旨:バッククォート便利。
- 8.7 漏れをふさぐ
- 要旨:抽象化には漏れがある。(そりゃそうだ。具象から捨象するから抽象があるのだから。)
- 要旨:マクロは「驚き最小の法則」で仕様を決めよ。
- 要旨:漏れをふさぐには、評価順、評価回数、展開形内部変数はgensymの3つに注意。
- 要旨:抽象化には漏れがある。(そりゃそうだ。具象から捨象するから抽象があるのだから。)
- 8.8 マクロを書くマクロ
- 要旨:マクロを書くのを楽にするのにもマクロが使える。
- 要旨:マクロを書くのを楽にするのにもマクロが使える。
- 8.9 シンプルなマクロの先へ
- 要旨:この章はタイピングを楽にする程度のマクロだった。次章ではマクロなしでは実現できないようなことをやる。
- 要旨:この章はタイピングを楽にする程度のマクロだった。次章ではマクロなしでは実現できないようなことをやる。
こつこつ。
0 件のコメント:
コメントを投稿