On 6 December 2010 23:52, jaayer <[email protected]> wrote:
>
>
>
>
> ---- On Sun, 05 Dec 2010 12:44:46 -0800 jaayer  wrote ----
>
>>Is anyone else bother[ed] by this inconsistency?
>
> Apparently not. Well, I uploaded two packages to the PharoInbox. One adds 
> #remove: and #remove:ifAbsent: to Dictionary and updates SmallDictionary's 
> implementations of those messages to return the same value - the association 
> removed - rather than their current behavior of #remove: returning self (no 
> explicit return value) and #remove:ifAbsent: returning the key of the removed 
> association. The second package adds #testRemove and #testRemoveIfAbsent to 
> DictionaryTest (through a trait).
>
>

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.
One might argue, that its more userful to make it same as #removeKey:,
other one could point that its should be symmetrical to #add: ,
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 :)

-- 
Best regards,
Igor Stasenko AKA sig.

Reply via email to