Although the end result should be the same, I wonder if for a collection of items where there is a lot of duplicates the sequential nature of collecting and then converting to a Set wouldn't be less performant than Mariano's proposed method?
-- Cesar Rabak Em 10/03/2010 10:07, Nicolas Cellier < [email protected] > escreveu: self collect: aBlock as: Set 2010/3/10 Mariano Martinez Peck : > Hi. I was needing something like the SQL select distinct, that doesn't take > into account repeated objects. I didn't found anything useful in Collection, > and thus, I have implemented this: > > Collection >> collectDistinct: aBlock > > > collectDistinct: aBlock > "Evaluate aBlock with each of the receiver's elements as the argument. > Collect the resulting values into a Set, thus repeated objects will not > be present. > Answer the new collection." > > | newSet | > newSet := self species new asSet. > self do: [:each | newSet add: (aBlock value: each)]. > ^ newSet > > > Is there a better way ? Do you think it make sense to put this in Pharo ? > > Cheers > > Mariano > > _______________________________________________ > Pharo-project mailing list > [email protected] > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project > _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project _______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
