shouting versus dotting

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sun Oct 5 06:45:21 PDT 2008


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 "!(".

There was also Positive{real}(joke), with which I couldn't find an 
ambiguity.

> - - -
> 
> 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.

Given that methodOfT is an alias, there is no need for the parens.


Andrei



More information about the Digitalmars-d mailing list