On 7 December 2010 12:49, Stéphane Ducasse <[email protected]> wrote: >>> >>> Hello, jaayer. >>> >>> The point about Dictionary inconsistency was raised multiple times before. >>> I was among ones of those who did that couple of years ago. >>> What can i say? >>> While it is much better to have consistency, >>> in fact it doesn't really changes much. I don't think that #remove: in >>> a form you proposed will be any userful. >>> I would really keep it simply #shouldNotImplement , because it is >>> unclear what is a least surprising behavior of this method for >>> Dictionary. > > Igor why? > > why remove: does not take the same argument than add: and does what it should? >
because with collection you can do: collection copy do: [:xx | collection remove: xx ]. or collection removeAll: (collection select: [:each | each isOdd ] ) but not with dictionary. So i don't see much reason fixing #remove: because we never going to fix #do: anyways, which makes all beautiful manipulations with collections useless for dictionary. >>> One might argue, that its more userful to make it same as #removeKey:, >>> other one could point that its should be symmetrical to #add: , >> >> #add: is not part of the ANSI <abstractDictionary> protocol. It is, however, >> part of the ANSI <extensibleCollection> protocol: >> add: >> addAll: >> remove: >> remove:ifAbsent: >> removeAll: >> >> One could make the argument that if Dictionary elects to implement part of >> it, it might as well implement the rest too. >> >>> but hey, then #do: should be also symmetrical to #add: , isnt? And so >>> it should iterate over associations , not just values. So, it is a can >>> of worms, once you open it , you can never finish the endless >>> discussions :) >>> It is just works in a way how we like (defined). It is like an >>> imaginary numbers in math where sqrt(-1) == i and basta :) >> >> Right... I wasn't planning on going there, but are we basically stuck with >> #do:, #select: #collect:, #includes: and other such messages operating on >> the Dictionary's values rather than its associations, forever? > > I hope not. > > > > -- Best regards, Igor Stasenko AKA sig.
