[squeak-dev] Re: sane defaults and doesNotUnderstand: (was Future
blah blah blah)
Klaus D. Witzel
klaus.witzel at cobss.com
Tue Jun 30 21:05:54 UTC 2009
On Tue, 30 Jun 2009 18:24:21 +0200, David Goehrig wrote:
> On Tue, Jun 30, 2009 at 11:28 AM, Klaus D. Witzel wrote:
>>
>> You just want this? result = (anObject.methodName ? methodName() :
>> false)
>>
>> ?
>
>
> Not quite.. if you were attempting to write it in javascript it would
> look more like:
>
... understood ...
>
> where currentContext would be an internal variable denoting the desired
> type / class / or traits of the result.
Can you put a method #defaultValue to the class side of String, Number,
etc, similiar to #defaultElement that is already in the collection
hierarchy. Then, assuming you have the below in control of
#doesNotUnderstand:, messages like
x zork
would return (thisContext client class defaultValue). But your
currentContext, that's not easy to find out, even if you know what
thisContext client is.
> The idea is that the defaultHandler of doesNotUnderstand would
> produce a reasonable
> approximation of a result based on the semantics and context in which
> the call appears.
>
> Here's the specific use case that I've been fighting with
...
You can make your own defaultHandler of #doesNotUnderstand:, like this,
during your computation:
[myObject myComputation]
on: MessageNotUnderstood
do: [:ex | ex return: ex receiver class defaultValue]
So ('' zork) will return ('' class defaultValue),
and (123 zork) will return (123 class defaultValue), etc.
?
/Klaus
More information about the Squeak-dev
mailing list
|