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 O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.