[#43857] Hashへの生成順は保障されないのか? — Hiroshi Kasamatsu <qqmn89yb9@...>

こんにちは、笠松と申します。

88 messages 2007/08/18
[#43858] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/18

Hiroshi Kasamatsu wrote:

[#43862] Re: Hashへの生成順は保障されないのか? — Hiroshi Kasamatsu <qqmn89yb9@...> 2007/08/19

皆さん、早速のレスありがとうございます。

[#43863] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/19

Hiroshi Kasamatsu wrote:

[#43870] Re: Hashへの生成順は保障されないのか? — Hiroshi Kasamatsu <qqmn89yb9@...> 2007/08/20

Urabeさん、笠松です。レスありがとうございます。

[#43872] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/20

Hiroshi Kasamatsu wrote:

[#43873] Re: Hashへの生成順は保障されないのか? — cuzic <cuzic@...> 2007/08/20

cuzic です。

[#43874] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/20

cuzic wrote:

[#43875] Re: Hashへの生成順は保障されないのか? — Tanaka Akira <akr@...> 2007/08/20

In article <46C9E7BB.4060100@ruby-lang.org>,

[#43876] Re: Hashへの生成順は保障されないのか? — Urabe Shyouhei <shyouhei@...> 2007/08/20

おお、田中さんを満足させる説明ってのは結構ハードル高そうだな。

[#43878] Re: Hashへの生成順は保障されないのか? — しん <dezawa@...> 2007/08/20

# 出遅れたので、レスすべきメールが判らなくなってしまったので、手近なのに

[#43879] Re: Hashへの生成順は保障されないのか? — Yukihiro Matsumoto <matz@...> 2007/08/20

まつもと ゆきひろです

[#43887] Re: Hashへの生成順は保障されないのか? — Nobuyoshi Nakada <nobu@...> 2007/08/21

なかだです。

[#43891] Re: Hashへの生成順は保障されないのか? — SASADA Koichi <ko1@...> 2007/08/21

 ささだです。

[#43892] Re: Hashへの生成順は保障されないのか? — Yukihiro Matsumoto <matz@...> 2007/08/21

まつもと ゆきひろです

[#43893] Re: Hashへの生成順は保障されないのか? — Nobuyoshi Nakada <nobu@...> 2007/08/21

なかだです。

[#43899] Re: Hashへの生成順は保障されないのか? — "Akinori MUSHA" <knu@...> 2007/08/21

At Tue, 21 Aug 2007 13:59:43 +0900,

[#43900] Re: Hashへの生成順は保障されないのか? — SASADA Koichi <ko1@...> 2007/08/21

 ささだです。

[#43906] Re: Hashへの生成順は保障されないのか? — "Akinori MUSHA" <knu@...> 2007/08/21

At Tue, 21 Aug 2007 19:29:11 +0900,

[#43921] Re: Hashへの生成順は保障されないのか? — Tanaka Akira <akr@...> 2007/08/22

In article <86sl6dgikh.knu@iDaemons.org>,

[#43926] Re: Hashへの生成順は保障されないのか? — Tanaka Akira <akr@...> 2007/08/23

In article <87zm0kaz60.fsf@fsij.org>,

[#43927] Re: Hashへの生成順は保障されないのか? — Yugui <yugui@...> 2007/08/24

Yuguiといいます。

[#43930] Re: Hashへの生成順は保障されないのか? — Yukihiro Matsumoto <matz@...> 2007/08/24

まつもと ゆきひろです

[ruby-list:43937] Re: Hashへの生成順は保障されないのか?

From: Yukihiro Matsumoto <matz@...>
Date: 2007-08-24 17:34:14 UTC
List: ruby-list #43937
まつもと ゆきひろです

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ではありませんし。

                                まつもと ゆきひろ /:|)

In This Thread