> >h = Hash.new([])
> >h[0] << 0
> >h[0] << 1
> >p h                    # <= {}           どうして?
> 
> 現象としては、Hash#default が指すオブジェクトだけが変更され
> ています。

なるほど。そういう仕組だったんですね。ここにもちゃんとオブジェ
クトが存在していたとは。Rubyって美しいなあ。
ありがとうございました。

> 個人的にはHashのdefaultが設定されている場合は、Hash#[] で参
> 照したキーに対して代入するように変更して欲しいと思います。

一票。デフォルト値を途中で変更するのはバグの元じゃないかなあ。

-- 
川村 尚生