Should the comma operator be removed in D2?

Ellery Newcomer ellery-newcomer at utulsa.edu
Tue Nov 17 15:01:39 PST 2009


Bill Baxter wrote:
> On Tue, Nov 17, 2009 at 1:51 PM, KennyTM~ <kennytm at gmail.com> wrote:
>> On Nov 18, 09 05:40, Ellery Newcomer wrote:
>>> Bill Baxter wrote:
>>>> However, I think for the good of humanity we can accept that one
>>>> little bizarre example of legal C syntax not doing the same thing in
>>>> D.
>>> int[] i;
>>>
>>> auto a = (i)[0];
>>>
>>> what does this do?
>> (i) should not construct a tuple. Probably (i,).
> 
> That's Python's solution and it seems to work out ok.
> 
> --bb

How do we express tuple types? Since we have tuple expression syntactic
support, we should have tuple type syntactic support. Cuz I'm going to
want stuff like

Tuple!(int,int) [] lst;

These won't work:

[int,int] [] lst;
(int,int) [] lst; //want
{int,int} [] lst;

these might:

@(int,int) [] lst; //bleach, regardless of what symbol '@' is
(,int,int) [] lst; //bleach
alias (int,int) T; T [] lst; //bleach bleach bleach
int,int [] lst; //requires tuple expressions be enclosed in () hmmmm...


actually, types vs expressions are already syntactically ambiguous, so
(int,int) [] lst; doesn't lose much. It's not the kind of thing we
should be encouraging, though.



More information about the Digitalmars-d mailing list