dynamic classes and duck typing

retard re at tard.com.invalid
Tue Dec 1 03:45:14 PST 2009


Tue, 01 Dec 2009 14:30:43 +0300, Denis Koroskin wrote:

> On Tue, 01 Dec 2009 14:26:04 +0300, retard <re at tard.com.invalid> wrote:
> 
>> Tue, 01 Dec 2009 03:16:47 -0800, Walter Bright wrote:
>>
>>> Ary Borenszweig wrote:
>>>> Can you show examples of points 2, 3 and 4?
>>>
>>> Have opDispatch look up the string in an associative array that
>>> returns an associated delegate, then call the delegate.
>>>
>>> The dynamic part will be loading up the associative array at run time.
>>
>> This is not exactly what everyone of us expected. I'd like to have
>> something like
>>
>> void foo(Object o) {
>>   o.duckMethod();
>> }
>>
>> foo(new Object() { void duckMethod() {} });
>>
>> The feature isn't very dynamic since the dispatch rules are defined
>> statically. The only thing you can do is rewire the associative array
>> when forwarding statically precalculated dispatching.
> 
> I believe you should distinguish duck types from other types.
> 
> You shouldn't be able to call duckMethod given a reference to Object,
> it's a statically-typed language, after all.

Agreed. But this new feature is a bit confusing - there isn't anything 
dynamic in it. It's more or less a compile time rewrite rule. It becomes 
dynamic when all of that can be done on runtime and there are no 
templates involved.



More information about the Digitalmars-d mailing list