[squeak-dev] Splitting Set and Dictionary

Igor Stasenko siguctua at gmail.com
Thu Nov 19 22:19:31 UTC 2009


Few comments.
HashedCollection is hardly abstract, because it implies how to use the
state (tally, array) in
specific way. But i think this is fine.

A #like: method , IMO first should appear in Set, since its completely
meaningless for Dictionary.

A Set>>collect: and Set>>select: using different ways to initialize
new collection.
One is:
newSet := Set new: self size.
another is:
newCollection := self copyEmpty.

i think they should use 'self species' .

2009/11/19 Levente Uzonyi <leves at elte.hu>:
> Hi,
>
> I uploaded 3 packages to the inbox which add a common superclass to Set and
> Dictionary. The suggested load order is:
> 1. Collections-ul.198
> 2. Collections-ul.199
> 3. KernelTests-ul.110
>
> Loading the packages will change previous behavior in some cases:
>
> - Dictionary >> #copyWithout: doesn't raise an error anymore. Example:
>  (Dictionary newFrom: { #foo -> 1. #bar -> 2 }) copyWithout: 1
>    ==> a Dictionary(#bar->2 ) (instead of an error)
> - No more asymmetric set-dictionary equality. Example:
>  #(1 2) asSet = (Dictionary newFrom: { #foo -> 1. #bar -> 2 })
>    ==> false (instead of true)
>  (Dictionary newFrom: { #foo -> 1. #bar -> 2 }) = #(1 2) asSet
>    ==> false (same as before)
>
> Cheers,
> Levente
>
>



-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list