(apply-generic op . args)

教育者, 将軍, 栄養士, 心理学者, 親はプログラムする. 軍隊, 学生, 一部の社会はプログラムされる. - 計算機プログラムの構造と解釈 序文

第4回やさしいPAIP読書会

paip3.pdf 直
本文に関する発表に使った資料。需要あるか微妙だけど一応。

(新しく覚えた|間違ってた)から復習すること。

1.クロージャ関係
2.再定義したwhenのマクロ展開
3.再帰と末尾再帰をより深く!


1.クロージャ関係

 サンプルコードの説明に限っては問題が無かったが、レキシカル関数周辺が特に間違っていたらしい。もう少し深く学び直そう。

2.whenのマクロ展開

 ABCLのwhenをSBCL上で再定義したことを発表した。深町さんを始め、みんなに「さらに、再定義したwhenpとwhenをマクロ展開して比較したら楽しい」と言われたので、実践する。また、「なぜifが組み込み関数なのか?」という弾さん達の話が今一理解できていないので、その辺Twitterで誰かに聞くなり、調べるなりする。「thenとelseが両方評価されたら大変」とか仰ってたので、その辺手がかりに。

3.再帰と末尾再帰

「再帰と末尾再帰の違い」は「処理の実行の保留」の有無だと思っていたが、「再帰呼び出しの元へreturnしなくてよい」事だった。なるほど!R5RSを読んでるときの「末尾再帰の保証」とかが今一理解出来てなかったが、スッキリした。あと、末尾再帰を学んで「多言語のWhileとかと一緒じゃん!」と思ったという話をしたら「その通り!」と言って貰えて良かった。


補足:深町さんの天然ぷりが可愛かった(笑)formatは可愛いですよね。