dynamic hash
1) lazy = lambda { |h,k| h[k] = Hash.new(&lazy) } h = Hash.new(&lazy) h[1][2][3][4] = 5 p h # {1=>{2=>{3=>{4=>5}}}} 2) h = Hash.new { |l, k| l[k] = Hash.new(&l.default_proc) }