View Problem

Create a histogram map from a list

Given the list [a,b,a,c,b,b], produce a map {a:2, b:3, c:1} which contains the count of each unique item in the list
ExpandDiskEdit
ruby
histogram = {}
list.each { |item| histogram[item] = (histogram[item] || 0) +1 }
DiskEdit
ruby 1.9
list = %w{a b a c b b}

histogram = list.each_with_object(Hash.new(0)) do |item, hash|
hash[item] += 1
end

p histogram # => {"a"=>2, "b"=>3, "c"=>1}
DiskEdit
ruby
list.inject(Hash.new(0)) {|h, item| h[item] += 1; h}

Submit a new solution for ruby
There are 36 other solutions in additional languages (clojure, cpp, csharp, erlang ...)