@property (again)

deadalnix deadalnix at gmail.com
Thu Nov 21 23:49:18 PST 2013


On Friday, 22 November 2013 at 07:37:11 UTC, Kenji Hara wrote:
> 2013/11/22 deadalnix <deadalnix at gmail.com>
>
>> On Friday, 22 November 2013 at 04:33:56 UTC, Kenji Hara wrote:
>>
>>> After removing 'function' concept, 'func' always means 
>>> function pointer or
>>> delegate. So we cannot call functions without parenthesis 
>>> anymore. It is
>>> unacceptable change to me, and many D programmers would 
>>> probably argue
>>> same
>>> thing.
>>>
>>>
>> It removes all ambiguities.
>>
>> Optional parentheses are still an option when they aren't 
>> ambiguous.
>>
>> void foo() {}
>>
>> foo; // Can still call foo if we want to.
>>
>
> It will introduce a new ambiguity. See below example.
>
> int foo();
> void test(int function() fp);
> void test(int num);
>
> void main() {
>     test(foo);  // which test is called?
> }
>
> Kenji Hara

The first one.

Note that optional () is ambiguous by definition - the word 
optional convey this very idea. The ambiguity introduced by 
optional () must not be conflated by the one introduced by the 
existence of non first class function.

You stated that the existence of function is necessary for 
optional parentheses to exist, and I showed you that it is false. 
Nothing more, nothing less.


More information about the Digitalmars-d mailing list