On 11/04/2009 06:10 PM, Aldric Giacomoni wrote: > Robert Klemme wrote: >> IMHO this solution is even simpler because it does not need the method: >> >> h = Hash.new {|h,k| h[k] = Hash.new(&h.default_proc)} > > Robert - I agree. I like this one better. Feels a little more ruby-ish. > Is there a way to use Proc (or whatever does work) to save this block > and reuse it when creating a new hash ? The block *is* saved and reused when creating nested Hashes! > Something like : > a = Proc.new {|h,k| h[k] = Hash.new(&h.default_proc)} > b = Hash.new a > > Note, I know this is wrong.. It'll just put the proc as the default > value, instead of triggering the proc. No need for that. Please look at my code again. Kind regards robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/