Hashのmap

まじにめにどんなのがうれしいか書いてみる - takkan_mのNo planな日常
僕もHashのmapはHashの方がしっくりします。こっちの方が汎用に使えそうなんですよね。あー、でもmapはEnumerableでeachを使って実装されているのかー。悩ましい。。。

class Hash
  def map
    inject({}) do |hash, args|
      hash.store(*yield(*args))
      hash
    end
  end
end

hash = {:a => 1, :b => 2, :c => 3}
p(hash.map {|(k, v)| [k, v + 1] }) # => {:c=>4, :a=>2, :b=>3}