From: toyofuku@... Date: 1998-05-28T02:39:13+09:00 Subject: [ruby-dev:2770] Re: hash with default value 豊福@パパイヤです。 まつもとさん > Hashというオブジェクトに直接Hashとは関 > わり無い「デフォルト値」という状態を追加することに妙に抵抗が > あるんですよ. 例に出てくる freq は、本質的にすべてのキー に対して 0 で初期化されたハッシュ(そういう のはもはやハッシュと呼ばないのかもしれません が)だと考えているので、初期値の 0 は freq と十分深い関係があると考えています。 そういうのはもはやハッシュではないという ことでしたら DefaultHash のような新しいクラス を使うとか、素のハッシュで実装するなら if (hash(key) == nil) then 0; else hash(key); するとかして「nil + obj」にしわよせがこない ようになっていて欲しいです。 > しかし,「nil + obj」をエラーにするためには「デフォルト値の > あるハッシュ」について云々するより,これを無くすという方向で > 進べきだと思います. 私の第一の目的はそれなので、その方向で構い ません。それには「nil + obj」をエラーにして もらうのが一番の早道かと思います。:-) >| ハッシュのことばかり書いてますが初期値 >|を持った配列も同様に考えてます。 > うーん,これも同様の理由で抵抗があります.こっちはハッシュよ > りももっと実装上の都合が悪いと言うことを別にしても. 配列はハッシュのキーを整数に制限したものだ と考えて書いたのですが、そんな単純なものでは ないことに気がつきましたので配列の件は撤回 いたします。 --- 豊福@パパイヤ unbound@papaya.juice.or.jp toyofuku@juice.or.jp