From: Robert Klemme Date: 2007-07-17T02:10:00+09:00 Subject: Re: clean nice way (hash) On 16.07.2007 17:03, James Edward Gray II wrote: > On Jul 16, 2007, at 9:36 AM, Robert Klemme wrote: > >> 2007/7/16, Chris Carter : >>> On 7/16/07, James Edward Gray II wrote: >>> > On Jul 16, 2007, at 5:58 AM, hemant wrote: >>> > >>> > > a.inject({}) {|mem,(key,value)| mem[key] = {'name' => value}; mem } >>> > >>> > I would write that as: >>> > >>> > a.inject(Hash.new) { |h, (k, v)| h.merge(k => v) } >>> > >>> > James Edward Gray II >>> > >>> > >>> >>> But that doesn't yield what he wanted... You could do >>> a.inject(Hash.new){|h,(k,v)| h.merge(k => { 'name' => value})} >> >> Still it's inefficient because of all the small Hashes that are thrown >> away immediately. The solution provided by hemant is better although >> not as elegant. > > If that bothers you, change merge() to merge!(). ... which doesn't help because it does not avoid all those one pair hashes. :-) Kind regards robert