From: nobu@... Date: 2014-09-06T11:15:35+00:00 Subject: [ruby-core:64811] [ruby-trunk - Feature #6669] A method like Hash#map but returns hash Issue #6669 has been updated by Nobuyoshi Nakada. Description updated ---------------------------------------- Feature #6669: A method like Hash#map but returns hash https://bugs.ruby-lang.org/issues/6669#change-48692 * Author: Yutaka HARA * Status: Feedback * Priority: Normal * Assignee: Yukihiro Matsumoto * Category: core * Target version: next minor ---------------------------------------- Given a hash `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 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`" is a perfect name for this. Maybe "`hash_map`" is better (we already have "`flat_map`"). ---Files-------------------------------- 6669.pdf (41.7 KB) -- https://bugs.ruby-lang.org/