[squeak-dev] #identityCaseOf:

Levente Uzonyi leves at caesar.elte.hu
Sun Mar 28 14:03:51 UTC 2021


On Sun, 28 Mar 2021, Tobias Pape wrote:

> Hi
>
>
>> On 28. Mar 2021, at 07:12, tim Rowledge <tim at rowledge.org> wrote:
>> 
>> 
>> 
>>> On 2021-03-27, at 11:47 AM, Thiede, Christoph <Christoph.Thiede at student.hpi.uni-potsdam.de> wrote:
>>> 
>>> Hi all,
>>> 
>>> the proposal is in the title. :-) Do you think we could need something like #identityCaseOf:[otherwise:], analogously to #caseOf:[otherwise:], on Object?
>> 
>> I would go with 'not'. I'm not a fan of #caseOf: either. Far too like C. Slippery slope to "oooh, let's have thing.ivar.ivar to be like structs."
>> 
>
> Exactly.
> If you need something like that, there's either a missing polymorphic abstraction, or a few ifTrue:'s are sufficient.
> (as in the case of #update:
>
> update: aSymbol
>
>  aSymbol == #foo ifTrue: [^ self knorz].
>  aSymbol == #bar ifTrue: [^ self berfp].
>  ^ false
>
> I think this is sufficient.

Those ifTrue:'s quickly render your code unreadable or force you to 
extract chunks of your code into a separate method which can impair 
legibility.

>
> Otherwise, use an IdentityDictionary?

Ah, the good old Pharo-way of doing things. :D

All-in-all, it looks as though we're slipping into another caseOf: vs 
no-caseOf: discussion. Let's not do that.


Levente

>
> Best regards
> 	-Tobias


More information about the Squeak-dev mailing list