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 < nicolas.cellier.aka.nice@gmail.com > 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 Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________ Pharo-project mailing list Pharo-project@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project