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

From: Tanaka Akira <akr@...>
Date: 2007-08-20 21:05:56 UTC
List: ruby-list #43877
In article <46C9FA45.6090705@ruby-lang.org>,
  Urabe Shyouhei <shyouhei@ruby-lang.org> writes:

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

えぇ、納得できません。

> ええと、基本的にRubyのクラス階層というのは振舞いが似てるから
> という理由だけでサブクラスにしたり単一のクラスに統合したりは
> しないように分けられているはずです。なんでかというと振舞いは
> moduleとして取り出すことができるからです。たとえばStringと
> ArrayはCレベルではほとんど同じ(配列のなかみがcharかVALUEかく
> らいしか違わない)ですが、それらの共通の振舞いはEnumerableに
> ごっそり分離されているため、RubyレベルではString < Arrayに
> なったりもせず、あるいはStringがArrayに吸収されることもなく、
> 完全に関係ないクラスとしてそれぞれ存在しているわけですね。

module により、クラスを関連づける方向付けが弱くなっているの
はそうでしょう。

> で、ArrayとHashってのは振舞いが少々似ている以上の共通点はな
> いわけです。つまり、統合する理由がない。Rubyの世界観において

統合する理由がないからといって、統合しない理由があることには
ならないでしょう。

> Arrayのような機能とHashのような機能を両方提供することにした
> 場合に、「すべてがオブジェクト」という原則から考えてもクラス
> を作らない方針はありえず、かといって上記のようにそれらを統合
> するのはおかしいので、結局現状のようにそれぞれ別のクラスにな
> るというのが一番自然であるべき姿のはずです。

統合する理由がない、ということから統合するのがおかしいという
ことは導けません。統合する理由がないとしても、統合しない理由
もないかもしれないからです。

> まとめると違うものは違うものとしてきちんと違うクラスにするの
> がRubyのクラス階層の設計のはず。ArrayとHashが分かれてる意味
> はArrayとHashが違うものだからでしょう。

違うものを違うクラスにするのはもっともなことです。問題は、
Array と Hash がどう違うか、です。

「振舞いが少々似ている」とのことですが、似ている点ではなくて、
違う点・相容れない点について具体的に主張していただけないでしょ
うか。

ちなみに、私は、Ruby で Array と Hash がわかれているのは、
Perl がそうだったからだと憶測しています。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread