03:32:22 [ksmakoto__'out] ; *.net *.split
03:32:27 [PECCU'out] ; *.net *.split
03:32:46 [g000001'out] ; *.net *.split
03:37:03 [g000001'in]
03:37:03 [ksmakoto__'in]
03:37:03 [PECCU'in]
09:54:24 [saia'in]
10:44:57 <PECCU => peccu>
11:38:01 [saia'out] ; Ping timeout: 246 seconds
13:27:59 <peccu => PECCU>
14:56:00 <PECCU => peccu>
21:31:41 [saia'in]
22:02:26 [saia'out] ; Ping timeout: 250 seconds
22:04:08 [g000008'in]
22:05:11 <g000008> 14時開催の筈が気が付けば、22時です
22:05:27 <g000008> とりあえず、今日も Successful Lisp / David B. Lamkins 眺めます
22:05:35 <g000008> ((( Chapter 5 - Introducing Iteration )))
22:05:54 <g000008> 繰り返し構文の解説っぽいですね
22:06:45 <g000008> (((( Simple LOOP loops forever... ))))
22:06:57 <g000008> まず、無限loopとしての、 (loop ...)の解説
22:08:56 <g000008> (((( But there's a way out! ))))
22:09:02 <g000008> loopから抜けるには、という話
22:09:19 <g000008> (((( Use DOTIMES for a counted loop ))))
22:09:46 <g000008> 一定の回数繰り返すならdotimesがありますねという話
22:11:40 <g000008> ((( Use DOLIST to process elements of a list )))
22:12:13 <g000008> リストを処理するなら、dolistがありますね、という話
22:12:23 <g000008> (((( DO is tricky, but powerful ))))
22:12:59 <g000008> do は比較的形式が複雑なので最後に解説
22:14:47 <g000008> doは最近だと使う人は減ってるかもしれないですねー
22:14:54 <g000008> 自分は割と好きな方ではありますが
22:15:49 <g000008> 一日一章ペースで行こうと思いましたが、もう一章行ってみます
22:15:50 <g000008> ((( Chapter 6 - Deeper into Structures )))
22:16:03 <g000008> (((( Default values let you omit some initializers, sometimes ))))
22:16:09 <g000008> 構造体の章のようです
22:18:35 <g000008> defstructで単純な形式で定義したコンストラクタだと、初期値を与えないと、NILで初期化されますが、
22:18:58 <g000008> この初期値を任意の値にするには、というような話です
22:19:07 <g000008> (((( Change the way Lisp prints your structures ))))
22:20:44 <g000008> defstructでは、:print-functionによってプリンタの挙動も設定できますが、この機能の解説です
22:22:51 <g000008> 構造体だと、デフォルトだと、#S(..)という風に読み取り可能な形式で印字もされるので、
22:23:26 <g000008> この挙動をかえることの是非と、読み取り不可に印字する場合の PRINT-UNREADABLE-OBJECT の使い方を解説しています
22:26:17 <g000008> (((( Alter the way structures are stored in memory ))))
22:31:13 <g000008> defstructでの定義では、通常の構造体だけではなくて、ベクタやリストを構造体に見立てた形式でも定義できますが、それの説明です
22:32:13 <g000008> 普通のベクタ等にしてしまうと、構造体としてのベクタと区別が付かなくなるので、目印のために名前を付ける:named機能の解説もあります
22:32:35 <g000008> (((( Allocate new structures without using keyword arguments ))))
22:34:26 <g000008> コンストラクタで、 (make-foo :x 1 :y 2 :z 3)という風にいちいちキーワード形式で指定するのが面倒だなーということがありますが、この形式を変更する :constructor の説明です
22:34:46 <g000008> (make-foo 1 2 3)と書けたり色々設定できます
22:34:59 <g000008> (((( Define one structure as an extension of another ))))
22:35:58 <g000008> 構造体は、クラスのように多重継承はできませんが、単一継承はできます
22:36:04 <g000008> のでこれの説明です
22:37:29 <g000008> 構造体の説明としては、必要にして十分な感じなので結構良い解説ですね。
22:37:49 <g000008> ということで、明日は、7章のCLOSでのクラスの定義からです
22:38:06 [g000008'out] ; Quit: ERC Version 5.1.2 $Revision: 1.796.2.4 $ (IRC client for Emacs)
22:42:05 [potix2'in]