From: William James Date: 2009-01-12T08:24:27+09:00 Subject: Re: functional programming Brian Candler wrote: > # Example: convert all hash keys to strings > src = {:one=>1, :two=>2} > > # Imperative > out = src.inject({}) { |h,(k,v)| h[k.to_s] = v; h } > > # Functional > out = src.inject({}) { |h,(k,v)| h.merge(k.to_s => v) } src = {:one,1, :two,2} ==>{:one=>1, :two=>2} Hash[ *src.map{|k,v| [k.to_s,v]}.flatten ] ==>{"two"=>2, "one"=>1}