On 6/16/05, James Edward Gray II <james / grayproductions.net> wrote:
> On Jun 16, 2005, at 11:07 AM, Belorion wrote:
>> I want a Hash of Hashes. Furthermore, I want it so that if a key
>> for the first has does not exist, the default value is a new
>> hash.
> irb(main):001:0> foo = Hash.new { |hash, key| hash[key] = Hash.new }
> => {}
> irb(main):002:0> foo["ii"]["jj"] = "Hello World."
> => "Hello World."
> irb(main):003:0> foo["ii"]
> => {"jj"=> "Hello World."}
> irb(main):004:0> foo["ii"]["jj"]
> => "Hello World."
 
An infinite variation of this is a two liner.

  hinit = proc { |hash, key| hash[key] = Hash.new(&hinit) }
  foo	= Hash.new(&hinit)

  foo["ii"]["jj"]["kk"] = "Hi, James!"

  require 'pp'
  p foo

-austin
-- 
Austin Ziegler * halostatue / gmail.com
               * Alternate: austin / halostatue.ca