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.


Reply via email to