Feature #6669
Updated by nobu (Nobuyoshi Nakada) about 10 years ago
=begin Given a hash `h`, `h.map` h, h.map returns an array(alist), but sometimes I hope it returned a hash. Example: ~~~ruby class Hash def apply(&block) self.inject({}) do |h, (k, v)| new_k, new_v = *block.call(k, v) h[new_k] = new_v h h end end end end score = { taro: [1,3,2], jiro: [3,5,8,4], saburo: [2,9] } max_score = score.apply{|k,v| [k, v.max]} #=> {taro: 3, jiro: 8, saburo: 9} p max_score[:taro] #=> 3 ~~~ I'm not thinking "`apply`" "apply" is a perfect name for this. Maybe "`hash_map`" "hash_map" is better (we already have "`flat_map`"). "flat_map"). =end