14:52:07 [g000005'in]
14:52:54 <g000005> ぼんやりしてたら、15時近くになってました
14:53:10 <g000005> 今日は昨日の続きで「対話によるCommon Lisp入門 http://www.amazon.co.jp/dp/4627836007」読んでみます
14:53:34 <g000005> (((( 第II部 発展的な対話 - 第11話 表とデータ抽象 ))))
15:25:12 <g000005> シンボルの属性リストから始まって、ハッシュ、構造体等、データ構造の説明です
15:26:05 <g000005> 各々の長所短所の説明や、循環構造の説明もあります
15:34:25 <g000005> コラムはリストを使わないで、cons・car・cdrを定義する話
15:34:41 <g000005> (((( 第II部 発展的な対話 - 第12話 オブジェクト指向プログラミング ))))
15:46:44 <g000005> CLOSの解説ですが、最初の説明でクラスではなくて構造体を使っているのが面白いところです
15:47:23 <g000005> 構造体だと継承が思ったようにいかない例を挙げて次にdefclassに切り換えます
15:47:58 <g000005> 次に多重継承(mixin)の説明
15:48:40 <g000005> eql特定子の話もちょっとだけ出てきます
15:48:59 <g000005> 割と良くまとまっているかなと思いました
15:53:01 <g000005> (((( 第II部 発展的な対話 - 第13話 Lispの内部構造とインタプリタ ))))
16:16:17 <g000005> CLOSを使って、lisp2なインタプリタを作るという結構面白い内容です。
16:17:16 <g000005> closの練習にもなるしなかなか良いですね
16:22:15 <g000005> II部にも練習問題があるのでやってみます
16:49:47 <g000005> https://github.com/g000001/learn/blob/master/cl/introduction-to-common-lisp-in-dialogue/introduction-to-common-lisp-in-dialogue.lisp
16:50:12 <g000005> 自分は、みたいな感じになりましたが、本の解答のunionは破壊的変更ありなんですね
16:51:31 <g000005> 11〜13話で補足ですが
16:51:44 <g000005> 11.19 (make-array 5) => #(NIL NIL NIL NIL)
16:51:51 <g000005> ってところは、ansi clでは処理系依存ですね
16:52:31 <g000005> loopのfinally returnもansi clの規格外なのですが、CLtL2では、この形式がアリというのを教えてもらいました
16:52:48 <g000005> この二者が動くのはCLISPなので、この本で使ってる処理系はCLISPなのかもしれないですね
16:53:59 <g000005> それと、12話の最後に 日本LISP協議会 という組織が紹介されていて、
16:54:16 <g000005> 年2000円で、ニュースレターなどが配布されていたようです
16:55:31 <g000005> 住所からすると、どうも日本シンボリックス株式会社/ニチメングラフィックス株式会社の主催みたいですね
16:55:36 <g000005> http://www.sfxbros.com/pages/backnumber/sy007.html
16:57:10 <g000005> とりあえず、ざっと読んでみましたが、入門には結構良い本ですね
16:58:03 <g000005> マクロ等取り上げられていないトピックスもありますが、他の書籍が充実しているので他の本を読めばOKですね
16:59:09 <g000005> loopや、closが取り上げられているってのも、なかなか良いところです
17:22:47 <g000005> 対話によるCommon Lisp入門→ポール・グレアムのANSI Common Lispって流れも良いかもしれないですね
17:46:37 [g000005'out] ; Quit: ERC Version 5.1.2 $Revision: 1.796.2.4 $ (IRC client for Emacs)
22:12:57 <usaturn> すごい楽しそうですね~
22:12:58 <usaturn> 早く読みたいけど暇が無い・・・・