perl

自分のクラスを変更する

クラスがコロコロ変化するというのをやってみたかったのでやってみた。 use warnings; use strict; { package Alphabet; sub new { bless {}, (shift); } sub next { my $self = shift; my $l = $self->letter; bless $self, ++$l; } sub prev { my $self = …

Priority Queue つづき

ランダムな値を10000件出し入れするベンチマークをとったところ、 POE::Queue::Array はナイーブに二分探索+splice で実装したものより 3 倍ぐらい速かった。すごいなー。Heap::Priority はそのナイーブ版より遅かった。Heap::Priority の実装は見てないけど…

順位つきキューを実装するならHeapじゃね?

spliceと二分探索で順位つきキューを実装してあったので、ヒープの方が効率良さげですよねと提案したところじゃあそうしようということになったんだけど、CPANでpriority queueで検索して出てきたPOE::Queue::Arrayはspliceと二分探索で実装してあった。はて…

データ型の表現

Perlのリスト(配列)の表現とか標準関数の実装が気になったので、ちょっとPerlのコードを読むことにしました。 まず処理系で使われる基本的なデータ構造を把握する必要があると思ったので、ext以下の標準ライブラリを見る。なんか、AV *hogheogeとかSV *とかG…