Я часто строю таблицы поиска в Ruby, обычно для кеширования некоторых дорогих вычислений или для создания чего-то, что я передаю представлению. Я полагаю, что для этого должна быть короткая читаемая идиома, но мы не могли придумать ни одного. Например, предположим, что я хочу начать с
[65, 66, 67, ...]
и в итоге
{65 => "A", 66 => "B", 67 => "C", ...}
Не совсем красивые идиомы, о которых мы могли бы подумать:
array = (65..90).to_a
array.inject({}) {|hash, key| hash[key]=key.chr; hash}
{}.tap {|hash| array.each {|key| hash[key] = key.chr}}
Hash[array.zip(array.map{|key| key.chr})]
Но все это немного болезненно: трудно читать, легко испортить, не ясно в намерениях. Конечно, у Ruby (или у какого-нибудь помощника по Rails) есть какая-то приятная магия для этого?