On Friday, 25 January 2013 at 01:38:01 UTC, kenji hara wrote:
2013/1/25 kenji hara <[email protected]>


I have thought an additional idea.
If we really want a feature to disable optional parentheses for normal
functions, we can add @function attribute to the language spec.

int foo();
@property int bar();
@function int baz();  // new!

int x1 = foo();  // ok
int x2 = foo;  // optional parentheses, allowed
int y1 = bar();  // disallowed, calling int is meaningless
int y2 = bar;  // ok
int z1 = baz();  // ok
int z2 = baz;  // *disallowed* by @function attribute


I think calling a function which does not annotated with @attribute without parenthesis is legal, Even if a function has some side-effects and a name
looks like verb. Because native English grammar does not require
parentheses.

He runs().  // normal function call
He runs.    // optional parentheses

Kenji Hara

English grammar don't have any functional style enable. It is not possible to return runs itself.

Reply via email to