[squeak-dev] Future of Squeak, and outsider's view
Igor Stasenko
siguctua at gmail.com
Mon Jun 29 21:06:10 UTC 2009
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 ]
> -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.
More information about the Squeak-dev
mailing list
|