4.15. Partycjonowanie i klasyfikacja elementów zbioru
Problem
Mając dany zbiór, zaimplementowany w postaci obiektu Set
lub Array
, chcemy dokonać podziału jego zawartości, grupując elementy w oddzielne struktury danych na podstawie pewnego kryterium. Jeżeli przykładowo jednym z atrybutów elementów zbioru jest kolor, to elementy w kolorze zielonym powinny znaleźć się w grupie innej niż elementy w kolorze czerwonym.
Rozwiązanie
Opisanego podziału dokonuje się za pomocą metody Set#divide
, z którą stowarzyszony jest blok kodowy. Wartością zwracaną przez ten blok powinien być zbiór, którego elementami są podzbiory zbioru oryginalnego, stanowiące grupy elementów w sensie wyżej opisanym.
Blok kodowy metody Set#divide
może mieć jeden lub dwa ...
Get Ruby. Receptury now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.