Flag proposal

Nick Sabalausky a at a.a
Fri Jun 10 13:30:47 PDT 2011


"Andrei Alexandrescu" <SeeWebsiteForEmail at erdani.org> wrote in message 
news:isttf6$2oub$1 at digitalmars.com...
> On 6/10/11 1:52 PM, Robert Clipsham wrote:
>> On 10/06/2011 19:06, Andrei Alexandrescu wrote:
>>> On 6/10/11 12:42 PM, Robert Clipsham wrote:
>>>> On 10/06/2011 17:15, Andrei Alexandrescu wrote:
>>>>> https://github.com/D-Programming-Language/phobos/pull/94
>>>>>
>>>>> Discuss!
>>>>>
>>>>> Andrei
>>>>
>>>> I really *really* don't like this. It's ugly and verbose, and a 
>>>> pathetic
>>>> work around for the lack of named parameters. Either support named
>>>> parameters or not, don't have an ugly half-baked work-around.
>>>
>>> This is not half-baked. It's pretty much it.
>>
>> My choice of wording was poor, sorry.
>>
>>> Ugly is in the eye of the beholder, but I fail to see how the added
>>> punctuation makes Flag!"param".yes significantly more verbose than param
>>> : true.
>>
>> foo(param: true, otherParam: false);
>> foo(Flag!"param".yes, Flag!"otherParam".no);
>>
>> I don't know about you, but I find the former is far more legible. I'd
>> hate to see my code littered with Flag!"something".
>
> I agree it's more legible. The crucial question is whether the added 
> legibility warrants adding a new feature to the language.
>

I really see Flag more as a way to try to rationalize avoiding adding named 
parameters to the language.

And yes, the legibility of "foo(Flag!"param".yes, Flag!"otherParam".no);", 
combined with the frequency of need for such a thing, and the complete 
inability of Flag to address the problem for anything but bool, the 
inability to document it separately (as Jonathan Davis pointed out), is all 
definitely much much more than enough to warrant adding a tried-and-proven 
feature that's become standard in damn near every other modern language.






More information about the Digitalmars-d mailing list