m.invoke() vs. m() vs. m#()

Vladimir Kirichenko vladimir.kirichenko at gmail.com
Sun Dec 13 03:25:22 PST 2009

Peter Levart wrote:

> This has the benefit of:
> - being unambiguous (no need for special shadowing/name-space rules)

Why be unambiguous here? For what? Just to have ability to name
everything with the same name?

Why don't we have special syntax for making unambiguous:
* interfaces: class X interface %X
* enums: class X{} enum $X{};
* constructors (why not?): class X { ~X(){} }
* final fields/variables: public static final String &CONST;
* static methods:  C.*m*();
* !this()
* ^super()

Every of above examples could be supported with every argument against
ambiguity shown here. Why don't we have it?  And having this things
ambiguous we seem not have any problems with "ambiguity".

Closure is a function. It's a natural to call function, any
function(constructor, static method, this(), super()) without pointing
out with verb "call it" or hieroglyph defining the same.

Best Regards,
Vladimir Kirichenko

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 259 bytes
Desc: OpenPGP digital signature
Url : http://mail.openjdk.java.net/pipermail/closures-dev/attachments/20091213/ec63d760/attachment.bin 

More information about the closures-dev mailing list