実践Common Lisp 6章まで
2009/05/11
6章まで読んだ。3章は昔Webで読んだけど、やっぱり3章が面白かった。
- 3章 実践:簡単なデータベース
これを読んでいると本当に小さい関数を作っていくことでプログラムができ上がっていき、更に小さい関数を追加していくことで、汎用性が上がっていき、しまいには、DSL的にデータベースにアクセスできるようになるのがわかる。あと、関数による抽象化というのを感覚的に忘れていたことに気が付いた。
前も思ったけど、Common Lispの設計は非常に賢い。困りそうなシチュエーションでは、ちゃんと先人がオプションなどで、回避方法を提供してくれている。Common Lispの仕様で理解できない部分があったら、なぜ、そうなっているかを理解することで、良い設計の勉強もできる気がする。
復習が必要そうなところ
- printの振舞いをリセットするwith-standard-io-syntaxを使うということ。安全なプログラムを作るためには必要だろうな。
- eqはオブジェクト同一性を調べる。数字や文字列を比較するには、eqlを使用するべき。(今まで数値の比較にeq使ってたorz)
- rotatef, shiftf の使いどころが思いつかない。