2009年7月1日水曜日

【フムフム本】17章 総称関数とオブジェクト


* 17章 総称関数とオブジェクト
- CLOS、久しくやってないので理解できないかも?
** 17.1 総称関数
- ふと、Schemeではdefine-setf-expanderとかがどう
なってるのかな、と思った。
** 17.2 コレクションとシーケンス
*** 17.2.1 コレクション
- お、もしかしてGaucheのコレクションは、ちゃんと
した?CLOSのクラスなのかも。そうだと便利だなぁ。
Common Lispは違う。。。
- group-collection。うーん、こういう手続きをつく
るという発想がすごい。視野を広く、発想を柔軟に
しなければ。
*** 17.2.2 シーケンス
- 特になし。
** 17.3 メソッド
- 特になし。
*** 17.3.1 メソッドの優先度
- Gaucheではクラスの最上流は<top>。
*** 17.3.2 next-method
- 特になし。
** 17.4 ユーザ定義型(クラスとインスタンス)
- やはり、Gaucheは組み込み型のクラスがちゃんと
CLOSで組まれているのか?期待。
*** 17.4.1 クラス定義
- 特になし。
*** 17.4.2 スロット定義
- 特になし。
*** 17.4.3 インスタンス生成
- 特になし。
*** 17.4.4 スロット値の参照と変更
- 特になし。
*** 17.4.5 インタンスの初期化
- 特になし。
*** 17.4.6 継承
- 特になし。
*** 17.4.7 スロットの保持
- う、「Gaucheでは<object>をCPLに持っていない(つ
まり、直接間接を問わずdefine-classで定義された
クラスを継承していない)クラスを継承することはで
きません。」残念。
- オブジェクト指向プログラミング言語に慣れてはい
ないのだが、このことを残念に思ったことは何回か
あった。スキルが低いからなのだろう。。。
** 17.5 メタオブジェクトプロトコル
- 特になし。
*** 17.5.1 メタクラスの作成
- そっか。別のメタクラスに属するクラス同士って
mix-inに使えるんだ。
*** 17.5.2 インスタンス化のカスタマイズ
- おもしろい。
*** 17.5.3 メソッド適用のカスタマイズ
- CLOSはやったことがあるが、MOPは不勉強だったので、
とても勉強になる。MOP使いこなせたら気持ちよさそ
うだなぁー。
** コラム すべてオブジェクトである(もしそれがお望みなら)
- 特になし。

こつこつ。

0 件のコメント: