Comma expression as tuple operator [was Tuples, C#, Java, language

justme justme at somewhere.net
Tue Dec 29 21:03:38 PST 2009


grauzone Wrote:

> BCS wrote:
> > Hello justme,
> > 
> >> bearophile Wrote:
> >>
> >>> C# will probably not follow the route of stagnation of Java for some
> >>> more time, thanks to Mono too. I don't like that string interpolation
> >>> syntax because it looks unsafe, and that design of tuples can be
> >>> improved, but they are listening to programmes (even if they risk
> >>> creating a mudball language):
> >>>
> >>> http://www.infoq.com/news/2009/12/Mono-CSharp-Ex
> >>>
> >>> More on those tuples:
> >>> http://tirania.org/blog/archive/2009/Dec-23.html
> >>> Eventually it will be quite useful to have some very well designed
> >>> multi-return support in D (like those tuples, but better).
> >>>
> >> Doesn't D2 already have tuples in Phobos. D has the comma operator
> >> which C# doesn't so such syntax is not possible in D, me thinks.
> >>
> > 
> > A though on the comma operator: if the comma operator were defined to 
> > give a tuple type and be implicitly castable to any suffix of it's self, 
> > then you could get both the comma expression usage that Walter wants as 
> > well as all the fun things that tuple expressions give.
> > 
> > int i = 1, j = 2;
> > 
> > (i, j) = (j, i); // swap
> > 
> > i = (j+= i, i*2 + j); // first expression gets evaluated and dropped.
> > 
> > Thoughts?
> 
> Why not make the programmer write tuple[$-1] instead?
> 
> i = (j += i, i*2 + j)[$-1];
> 
> There's no reason to keep the current comma operator.

It's his language, after all. I'm sure there is a good reason why the old C style comma expression is still there. Maybe it's good for generating parsers with some software tools?



More information about the Digitalmars-d mailing list