From: Yukihiro Matsumoto Date: 2007-08-25T02:34:14+09:00 Subject: [ruby-list:43937] Re: Hashへの生成順は保障されないのか? まつもと ゆきひろです In message "Re: [ruby-list:43936] Re: Hashへの生成順は保障されないのか?" on Sat, 25 Aug 2007 01:59:53 +0900, m-ohkubo@sakura.email.ne.jp (Mitsuhiko OHKUBO) writes: |> * 全く同じ機能で性質だけ異なるクラスを複数用意するのは大ク |> ラス主義を標榜するRuby的でない | 「大クラス主義」が良くわからかったのですが、「少機能のクラス |を多数用意するよりも多機能なクラスを少数用意しましょう」というこ |とだろう、と思っての提案なのですが、違ってたらご指摘ください。 そういうような意味です。 | Hashインスタンス生成時に順序維持の特性を持つハッシュライブラ |リの実装を使うか、持たないハッシュライブラリの実装を使うかを指定 |できるようにはならないでしょうか?順序維持の特性が重要な場合があ |る一方で、他の特性(メモリ使用量とか)が重要な場合もありますので、 |選択できる道を残しておいて欲しいです。 選択肢が多い方がよいかと言うと必ずしもそうではないのです。と いうか、ハッシュエントリひとつあたり2ワードの増加が問題にな るような局面ではRubyの使用そのものが不適切な可能性が高いと思 います。 |> * Hashに順序を導入する(ただし、インスタンス変数やシンボルテー |> ブルなどにはない) | 将来、さらに高性能なハッシュライブラリが現れた場合に、Hashの |仕様が順序維持を含むために、Hashの実装にそのライブラリを利用でき |ない、という状況は起き得ることなのでしょうか? | もう一つ、同様の場合に、Hashの実装にそのライブラリを利用する |ためにHashの仕様から順序維持が外される、という状況は起き得ること |なのでしょうか? これはknuさんの懸念ですね。ですが、ハッシュと言うのはかなり古 典的なアルゴリズムですし、これから極端に性能が違うライブラリ が登場する可能性はかなり低いと思います。Judyのような「キャッ シュラインを意識した高速でHashっぽいライブラリ」というのは存 在しますが、JudyはHashではありませんし。 まつもと ゆきひろ /:|)