http://github.com/shinh/multix/blob/master/multix.rb
Boost.MultiIndex とかのはなし…は聞いてないんだけどスライドを見て、そういやこういうの Ruby こそ欲しいようなそうでもないような…ということで適当に書きました。途中でやる気が尽きたので、使いものにならんです。なんか遅いしインターフェイス足りないまくりだし。あと 。私が使う気が起きない限り放置しそうです。
というかなんというか要は二分木が欲しいというのもあるので、せっかく書いた splay tree くらいはなんか単体で使えるようにしてもいいかも。
感想としては
- splay tree っていうか tree の operation っていつも思うんですが難しい。よく間違える。 hash って基本簡単なのに tree より使い勝手が良い感じがあるのはえらいと思う。
- Ruby で multimap 的なものを自然に表現するにはどうすればいいかというインターフェースを工夫する脳が足りない。現状は同じ内容の要素が入った場合どっちがかえるかわからんのでひどい。
- Ruby でこういう template でやりたいようなことはとてもやりにくい気がした。できるんだけど、静的にやりたいのになんでも動的にやることになってしまって、気にいらない。
- この手の処理はやはり Ruby1.9 速い。手元で 10 倍以上速い。 (0.32447sec vs 0.022188sec)