shouting versus dotting

KennyTM~ kennytm at gmail.com
Sun Oct 5 03:03: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 "!(".
> 
> - - -
> 
> 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);

---

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



More information about the Digitalmars-d mailing list