2008-10-01から1ヶ月間の記事一覧

二つのオブジェクト指向とそれぞれのメリット

OOP

似たような話の繰り返しで恐縮ですが、現時点での自分の理解の整理のためのメモ。前後しますが、こうして改めてまとめてみると、純粋な抽象データ型のオブジェクト指向プログラミングは、メッセージングのオブジェクト指向の影響も多分に受けている OOAD(分…

GNUstep/Objective-C で KVO(キー・バリュー・オブザービング)

もろもろの勉強を兼ねて、一番初めのObjective-Cプログラム (1/3):Cocoaの素、Objective-Cを知ろう(2) - @IT を改変して、KVO で歌詞変更を監視して自動出力する版への書き換えにチャレンジしてみました。a Singer は a Song を与えられると、自身をオブ…

C# で遅延&メモワイズなフィボナッチ数列

LazyなFibonacci - (hatena (diary ’Nobuhisa)) にからめて。 墓に刻むほどクールではないけれど、そういえば Ruby にも特異メソッドを使って… fib = [1,1] def fib.[](i) i < size ? super : self[i] = self[i-2] + self[i-1] end p fib[39] #=> 102334155 …

Pythonクイズ(辞書の非破壊的操作) を Squeak Smalltalk の実装を参考に

以下の?????を埋めよ。但し文字数の指定はない。解答はいくつかあると思うが後日。>>> d1 = {'a':1, 'b':2, 'c':3} >>> d2 = {'c':4, 'd':5, 'e':6} >>> print ????? {'a': 1, 'c': 4, 'b': 2, 'e': 6, 'd': 5} >>> d1 {'a': 1, 'c': 3, 'b': 2} >>> d2 {'c'…

Squeak Smalltalk のクラス階層の深さ

Smalltalk のクラス階層が深すぎる気がする Twitter / 星一 というつぶやきを見かけたので、調べてみました。 | dict | dict := Dictionary new. SystemNavigation default allBehaviorsDo: [:class | class isMeta not ifTrue: [ (dict at: class allSuperc…

Dolphin Smalltalk の MVPアーキテクチャで BMI checker

id:sumim:20080923:p1 の続き。MVC の進化形である VisualWorks のアプリケーションモデルに続き、MVP(Model-View-Presenter)にも興味を持ったので、ちょっとした騒ぎにもなったディスコン宣言から一転、このほどめでたく 復活することになった Dolphin Sm…