[ruby-it] Il problema di Matteo all'RSC
Claudio Petasecca Donati
cpetasecca a gmail.com
Gio 25 Set 2008 14:53:23 CEST
Con Ruby 1.9 (credo) possiamo sfruttare il metodo group_by, che e'
definito anche in Rails:
>> pool = %w(m m f g f m f g m m g f)
=> ["m", "m", "f", "g", "f", "m", "f", "g", "m", "m", "g", "f"]
>> pool.group_by {|x| x}.values.flatten
=> ["m", "m", "m", "m", "m", "f", "f", "f", "f", "g", "g", "g"]
Per versioni di ruby precedenti, si puo' definire il metodo group_by:
module Enumerable
def group_by
assoc = Hash.new
each do |element|
key = yield(element)
if assoc.has_key?(key)
assoc[key] << element
else
assoc[key] = [element]
end
end
assoc
end
end
--
Posted via http://www.ruby-forum.com/.
More information about the Ml
mailing list