[#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:43912] Re: Hashへの生成順は保障されないのか?

From: NAKAMURA Akifumi <BXQ04723@...>
Date: 2007-08-21 15:53:54 UTC
List: ruby-list #43912
A.nakamuraです。


マニュアル見たんですが、
http://www.ruby-lang.org/ja/man/?cmd=view;name=Hash
この冒頭の説明(現時点での)を読んだだけで
「こりゃ順序無いよな」と「わかる」人ってのは、
ハッシュという単語の持つ真の意味を理解してる人で、
わからん人はわからんで終わっちゃうんじゃないでしょうか?
Hashという名がアルゴリズムを暗示(どころではないが)してる
ということに気づかない人は気づかない。

「連想配列」という言葉も、順序が無いとは言ってないわけで。
(有るとも言ってませんが)

んー。ハッシュとは何ぞや、みたいなことも書いたほうがいいのかなあ。
あるいは説明してる外部サイトにリンクしちゃうとか?
WikipediaJ:ハッシュテーブル …
うーん何だかいきなり濃い話になってるし…



rubikitch@ruby-lang.org さんは書きました:
> なんといっても => がないとHashという感じがしませんし。

個人的にはどういうわけかHashのあれの「=>」に何年たっても馴染めないでいます。
リテラルで「一発で」書けることには強い魅力は感じますが、
Hashのあのリテラルがどうも好めない。

そこで「一段かまして」書くという妥協を考えたりします。
あるいはHash[key,value,...]と同様の路線で。

で、
OrderedHash[1, "One", 2, "Two"]
もそれと似たようなもんかなと思うんで一票。
OrderdHashという名前が長くていやだ!というなら、
aでもなんでもいい(わら)から別名で呼べばいいし。

っていうか、欲しい人が
def a(data)
  HogehogeConntainer.new(data)
end
って書くってことで良いような気がするんだよなあ。
Ruby本体を一番弄らずに済むのはコレ、でしょうか。

確かに時として、リテラルに直結してるクラスが
「うらやましく」思えることも有るんですが、
「一段かます」つまりコンバートすると考えれば、
まあ妥協の範囲かなと思っています。
Arrayなりなんなりを1つ使い捨てることになりますが、
LLなんだからイイヤンというか(^^;。
そしてリテラルで書くってことは(JSON的に使う場合を除けば)
あまり巨大なデータは入れないだろって鯖読んでみたり。


あと、
%m{ x1 => y1, ... }
または
%m{ x1, y1, ... }
みたいに
括弧にPrefixつける(というのでしょうか?)ことで意味を変える、
っていう仕組みをもし(Rubyで書くときに)使えるんだったら、
色々やれそうですね。
#収拾つかなくなる恐れもありますが(^^;




In This Thread