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