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/