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

BCS none at anon.com
Tue Dec 29 21:38:46 PST 2009


Hello grauzone,

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

Frankly, while I have no problem with it, I'd also be fine with dumping the 
comma operator all together, even making the [$-1] thing illegal ("code has 
no effect" and all that) but Walter has time and again shot down anything 
that does away with the comma operator so I was looking at it as a way to 
have my cake and eat it to.





More information about the Digitalmars-d mailing list