[Newbies] Re: Recap: How to empty a collection
Klaus D. Witzel
klaus.witzel at cobss.com
Thu Feb 21 07:38:44 UTC 2008
On Wed, 20 Feb 2008 23:05:47 +0100, nicolas cellier wrote:
> Klaus D. Witzel a écrit :
>> On Wed, 20 Feb 2008 02:01:49 +0100, nicolas cellier wrote:
>>
>>> Some proposed an alternative based on (self removeAll: self), and
>>> started writing optimized versions of #removeAll:.
>> No, (anOrderedCollection removeAll: anOrderedCollection) was not
>> optimized. It had a *very* long known bug, which was fixed. Please do
>> less mixing of subjects in threads.
>>
>
> OK, I'm extrapolating.
O.K. the fix from OrderedCollection *could* be applied to Set (the fix
requires #copyEmpty), but see Heap below.
> In this case, while you are at it:
>
> | aSet |
> aSet :='Klaus' asSet.
> aSet removeAll: aSet.
> aSet
>
> | aHeap |
> aHeap := Heap withAll: 'Witzel'.
> aHeap removeAll: aHeap.
> aHeap
Don't use Heap much, it is not very conformant; example: (Heap withAll:
'array') reject: [:x | x = $r] => an Array. Perhaps people didn't know
about *all* senders of #species ...
>
> I would have used my name, but it seems i am removeable ;-)
> | aSet |
> aSet :='Cellier' asSet.
> aSet removeAll: aSet.
> aSet
>
> Try with the collection of your choice.
>
> In the mean time, don't use (self removeAll: self)...
One step after the other :) no doubt #removeAll: gets fixed, perhaps in
the next release?
> Yes i'm mixing threads,should be How to NOT empty a collection ;-)
>
> Nicolas
>
>>> I think our biggest problem is that we have plenty possible ways to do
>>> it... Finding a balance between genericity and efficiency...
>> No, more correctness at the price of less efficiency :)
>>
>>> Nicolas
>
> Agree on this one.
> Then allow removeAllSuchThat: as default implementation.
>
> Nicolas
More information about the Beginners
mailing list