November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Dysponujemy tablicą zawierającą mnóstwo odwołań do stosunkowo niewielkiej liczby obiektów. Chcielibyśmy stworzyć mapę częstości tych odwołań, czyli histogram obrazujący częstotliwość występowania w tablicy odwołania do danego obiektu.
Tworzymy hasz, przypisując każdemu elementowi liczbę jego wystąpień w tablicy.
module Enumerable def to_histogram inject(Hash.new(0)) { |h, x| h[x] += 1; h} end end [1, 2, 2, 2, 3, 3].to_histogram # => {1=>1, 2=>3, 3=>2} ["a", "b", nil, "c", "b", nil, "a"].to_histogram # => {"a"=>2, "b"=>2, "c"=>1, nil=>2} "Aye\nNay\nNay\nAbstaining\nAye\nNay\nNot Present\n".to_histogram # => {"Abstaining\n"=>1, "Nay\n"=>3, "Not Present\n"=>1, "Aye\n"=>2} ulubione_kolory ...