Support of algebraic operations on sets

Klaus D. Witzel klaus.witzel at cobss.com
Fri Jun 15 15:56:04 UTC 2007


On Fri, 15 Jun 2007 17:41:49 +0200, sig <siguctua at gmail.com> wrote:
> On 15/06/07, Klaus D. Witzel wrote:
>> On Fri, 15 Jun 2007 15:50:54 +0200, Bert Freudenberg wrote:
>> > On Jun 15, 2007, at 14:45 , sig wrote:
>> >
>> >> actually i missing these operations for dictionaries.
>> >> in current implementation if you diff/union on two dictionaries,
>> >> you'll find out that associations play role as set elements, not  
>> keys.
>> >>
>> >> for dictionaries 'a difference: b' i get not exactly what i would
>> >> expect.
>> >
>> > Dictionaries are like other collections - a collection of "elements"
>> > (the values). The keys are only interesting for accessing - like  
>> indices
>> > on Arrays.  #do: operates on the values. So does #select:, and
>> > #difference:. You wouldn't expect #difference: on an Array to work on
>> > its indices, would you?
>>
>> Good argument. And if some solves that by (aDict keys op: bDict keys)  
>> and
>> aDict's values are completely different from bDict values, no cDict can
>> hold the "correct" values unless cDict is empty under all circumstances  
>> ;-)
>>
>> /Klaus
> In my work i must maintain same number of keys in one dictionary as in
> other, while their values are totally different. So, when first
> dictionary changed somehow, then later i need to sync keys with second
> one, but not values, because they constructed by other means. And
> thats where set operations on keys only is useful.
>

So you do (aDict keys op: bDict keys)? Is any #op: you need for that not  
in Set and its superclasses?

/Klaus




More information about the Squeak-dev mailing list