@m_seki の

I like ruby tooから引っ越し

RindaのTupleBag

タプルやテンプレートの集合を管理するTupleBagは、タプルの要素数ごとに分けてビン(Array)にしまっています。全部を同じArrayにしまうと効率悪そうだったから、何らかの方法で分割するとか、インデックスをつくったほうが良さそうとは思っていました。が、今のパターンマッチングの規則では自由すぎてよい分割方法が思いつかなかったのです。そんで、現在の実装では、パターンに依らず外れそうにない「要素の数」でビンを分けることにしました。

「要素の数」で分ける作戦から、一般のアプリケーションでよく使われる特定の形式のタプルだけ効率が良いように分ける作戦に変更しようと思います。具体的には、先頭の要素(tuple[0])がSymbolのときに、そのSymbolでビンを分けるようにするつもりです。少ないけど多くのアプリケーションでは、先頭がメッセージ種で、続いてIDやパラメータがつづくタプルを使うことが一般的なように思います。

commit logが書けたらコミットするつもりなんだけど、ずっとずっと書けない。