Steven Schveighoffer wrote:
On Fri, 24 Jul 2009 14:10:59 -0400, Walter Bright
<[email protected]> wrote:
That's my problem with properties as a distinct syntax - they don't
have distinct uses or behaviors.
If you delineate what can be called how, then you elminate syntax
ambiguities from occurring, and eliminate bizarro cases of syntax. The
difficulty is that the "human meaning" of a property is different than
the human meaning of a function. To the compiler, they're all
functions, so you as the compiler writer aren't seeing that they are
different. I think we all agree that writefln = "hi"; makes absolutely
no sense to a person. But it makes complete sense to the compiler,
because it has no idea what the word "writefln" means to a person.
But when I suggest a restriction on properties, I get complaints that
someone might want to have them do what functions do. So I fail to see
what rule distinguishes them from functions, even for people.
It's the exact same reason + is not the concatenation operator.
Semantically, making + concatenate two strings together would be
completely unambiguous from adding two integers together because strings
do not define addition, and integers do not define concatenation. From
your own documentation, someone seeing "10" + 3 might think that he
would get 13 or "103". Even if the compiler defines what "should"
happen, and the rules are unambiguous, it looks incorrect to the user.
Using + for concatenation is syntactically ambiguous with vector addition.