[squeak-dev] Future of Squeak, and outsider's view

Igor Stasenko siguctua at gmail.com
Mon Jun 29 21:13:02 UTC 2009


2009/6/30 Igor Stasenko <siguctua at gmail.com>:
> 2009/6/29 Cameron Sanders <csanders.personal at functional-analyst.com>:
>> I didn't read  your example closely, but, generally....
>>
>> (obj respondsTo: #isCVLambda) and: [ obj isCVLambda ]
>>
>
> can't do that for lambdas, because it traps all DNU's and in this case
> a send of #respondsTo: (or any other unknown message) will be
> converted into a lambda message send instead of answering expected
> result.
> Because:
>
> lambda := LambdaSlot id: #x.
> lambda foo  ==> lambda( <x> #foo)
>
>> is very general (independent of hierarchy), or if you want to trap people on
>> a class tree...
>>
>> obj isKindOf: CVLambda
>>
>
> sorry, but this even worse than using #isXXX
>
>> or trap exceptions for when something doesn't respond to isCVLambda ...
>>
>> or...
>>
>> --
>> BUT, it will be slower.
>>
>> an intriguing idea is having Object always respond to any pattern isXXX with
>> false, unless the method is explicitly defined. (Now there I go, changing
>> the root behavior...)
>>
>
> Exactly :)
>
> Maybe it worth add and standardize the #is:
> message for Object ?
> Which by default can be implemented as:
>
> Object is: object
>  ^ self == object
>
> and if you need to add the differentiation, then could be something like:
>
> Object is: object
>  ^ object == #lambda or: [ super is: object ]
>

Sorry.. it can be confusing, because i wrote it not very clear:

Object>>is: object
  ^ self == object

SomeOtherThing>>is: object
  ^ object == #otherThing or: [ super is: object]

>
>> -Cam
>>
>>
>> On Jun 29, 2009, at 1:18 PM, Igor Stasenko wrote:
>>
>>> so, here the question, can i implement the same behavior w/o using
>>> #isCVLambda , and
>>
>>
>>
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>



-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list