"body" keyword is unnecessary

KennyTM~ kennytm at gmail.com
Thu Mar 24 09:50:56 PDT 2011


On Mar 24, 11 22:25, piotrek wrote:
> On Thu, 24 Mar 2011 21:37:12 +0800, KennyTM~ wrote:
>
>> On Mar 24, 11 19:00, sclytrack wrote:
>>> == Quote from piotrek (starpit at tlen.pl)'s article
>>>> On Wed, 23 Mar 2011 23:17:32 +0100, Alvaro wrote:
>>>>> D already has a long list of keywords, reserved words can't be used
>>>>> as identifiers, which can be annoying. "body" in particular is a
>>>>> common noun that programmers would gladly use as a variable name in
>>>>> physics simulation, astronomy, mechanics, games, health, etc. I think
>>>>> "body" can be removed from D with no harm, and with the benefit of
>>>>> allowing the name as identifier.
>>>> yes, please
>>>> body is also a html tag
>>>> Cheers
>>>> Piotrek
>>>
>>> Copied the following line from the Vala (=mostly reference counted
>>> language) web page.
>>>
>>> "It is possible to use a reserved keyword as identifier name by
>>> prefixing it with the @ character. This character is not part of the
>>> name. For example, you can name a method foreach by writing @foreach,
>>> even though this is a reserved Vala keyword."
>>>
>>> My body is hungry and starving.
>>>
>>>
>>>
>> How is this better than _body or body_?
>
> I think "@" is a little bit nicer, but it doesn't change the situation at all . body (if possible) shouldn't be a keyword.
> Can anyone from the steering group state his opinion? :)
>
> Cheers,
> Piotrek

I agree body shouldn't be a keyword.

The @body solution doesn't work in D because:
   1. @identifier is already reserved for user attributes (@safe, etc.)
   2. What does @keyword.stringof (name of the variable) return?
       if it returns "@keyword", then it is no different from using 
"_keyword"
       if it returns "keyword", you may break many string mixins.
   3. @keyword exists in C# because the CLI isn't bound to any language, 
so a keyword in C# may not be a keyword in other CLI languages, and that 
would be got used. D shouldn't have this problem.

------

Speaking of which, how do we do

     extern(C) void body();

?


More information about the Digitalmars-d mailing list