shouting versus dotting
    Andrei Alexandrescu 
    SeeWebsiteForEmail at erdani.org
       
    Sun Oct  5 06:49:48 PDT 2008
    
    
  
KennyTM~ wrote:
> Michel Fortin wrote:
>> On 2008-10-05 01:14:17 -0400, Andrei Alexandrescu 
>> <SeeWebsiteForEmail at erdani.org> said:
>>
>>> I don't favor "." any more than the next guy, but I am glad there is 
>>> awareness of how unfit a choice "!" is. If you have any ideas, please 
>>> post them! Ah! I! Exclaimed! Again!
>>
>> Hum, I don't think we have much choice, it'll have to be something in 
>> this lot:
>>
>>     Positive!(real)(joke);
>>     Positive.(real)(joke);
>>     Positive#(real)(joke);
>>     Positive@(real)(joke);
>>     Positive&(real)(joke);
>>     Positive`(real)(joke);
>>     Positive´(real)(joke);
>>     Positive^(real)(joke);
>>     Positive¨(real)(joke);
>>     Positive\(real)(joke);
>>
>> Anything else I forgot?
>>
>> Or we could use special delimiter characters:
>>
>>     Positive<real>(joke);
>>     Positive“real”(joke);
>>     Positive«real»(joke);
>>     Positive#real@(joke);
>>
>> Each having its own problem though.
>>
>> My preference still goes to "!(".
>>
>> - - -
>>
>> The ".(" syntax makes me think more of something like this:
>>
>>     void func(T, alias methodOfT, A...)(T obj, A args)
>>     {
>>         obj.(methodOfT)(args);
>>     }
>>
>> which I which I could do. If methodOfT was a string, I suppose I could 
>> use string mixins, but it pushes diagnostics about misnamed methods 
>> further in the template and requires adding quotes to the template 
>> parameter when instanciating.
>>
> 
> Argh, actually I once have a strong desire making
> 
>   f«T»(x);
> 
> a valid construct, and to workaround that « and » can't be easily typed 
> you could substitute it with
> 
>   f\<T\>(x);
> 
> ---
Yah I would've like French quotes too.
> Anyway, I think the .() syntax is not as good as !() because the . is 
> pretty hideous before another punctuation mark (which may be a good 
> thing, I don't know), and one could easily miss it.
> 
> And even if .() is allowed, please don't remove !() -- it will break 
> significantly many code, and it doesn't cause any ambiguity either 
> (unlike .func() vs .prop).
Many languages have successfully dealt with similar situations by simply 
allowing both but promoting only one in books and other documentation. 
Speaking of which, I'm on verge of signing with Addison Wesley Longman 
for delivering TDPL in April.
Andrei
    
    
More information about the Digitalmars-d
mailing list