2009-02-01から1ヶ月間の記事一覧
Receiverクラスが実装。ReceiverクラスをCommandクラスでラップして実装をカプセル化。CommandクラスはAdapterパターン的に利用する。ContextからRecieverを分離するため、Invokerを通じてCommandオブジェクトを呼び出す。下のプログラムにはないけど、Invok…
サポートベクターマシン入門作者: ネロクリスティアニーニ,ジョンショー‐テイラー,Nello Cristianini,John Shawe‐Taylor,大北剛出版社/メーカー: 共立出版発売日: 2005/03/01メディア: 単行本購入: 8人 クリック: 135回この商品を含むブログ (42件) を見るこ…
対象関数、データ範囲、ノイズはYAMLで読み込む。対象関数の次元とかノイズを抽象化して、イケてる感じに書けないかしら。DataFactory.pl use strict; use warnings; #use Data::Dumper; my $factory = new DataFactory($ARGV[0]); for(my $i = 0; $i < 1000…
StateからContextへの参照はリークを防ぐためにScalar::Util::weakenを利用する。状態マシンだから仕方がないとはいえContext〜State間のくっつき具合は気持ち悪い。状態を追加する際にContextに手を加えずに済む実装方法はないものか。 use strict; use war…
N($mean, $deviation^2)なる正規分布に従った乱数生成。一様乱数はメルセンヌツイスタ。任意の確率分布の乱数をしたい場合は、、、確か逆関数法とか棄却法とかで頑張るんだった気が。 use strict; use warnings; use Math::Random::MT qw(rand srand); use M…
WWW::Mechanizeを利用してサイトのデータを取得。エンコードの解決のために一旦Mechanizeオブジェクトが保持するcontentからエンコード形式を推測しておかないといけない。 use strict; use warnings; use WWW::Mechanize; use Encode; use Encode::Guess; u…
use strict; my $component = new ConcreteComponent(); my $decorator = new ConcreteDecorator($component); $decorator->operate(); ############################## # Component { package Component; sub new{ my $this = shift; my $obj = { @_ }; ret…
use strict; my $adaptee = new Adaptee(); my $adapter = new Adapter($adaptee); $adapter->request(); ############################## # Adapter { package Target; sub new{ my $this = shift; return bless { @_ }, $this; } sub request{ die "need o…
ようやくリファレンスや継承に慣れてきた。 use strict; use warnings; my $strategyA = new ConcreteStrategyA(); my $strategyB = new ConcreteStrategyB(); my $context = new Context($strategyA); $context->contextInterface(); $context->setStrategy…