紺屋高尾

ぬしの女房はんに、わちき、なりたいんざます。来年三月十五日、年季(ねん)が明けるんざます。そのときは眉毛落として歯に鉄漿(かね)染めて、ぬしの傍に参りんすよって、お内儀(かみ)さんにしてくんなますか?

第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は可愛いですよね。