On 12/10/2009 15:43, Don wrote:
language_fan wrote:
Sat, 10 Oct 2009 17:15:55 +0200, Yigal Chripun thusly wrote:

Now, wouldn't it be wonderful if D had provided real tuple support
without all the Tuple!() nonsense?

'D has full built-in tuple support' has been the answer each time I've
asked. It seems not to be advisable to ask more about this specific
feature since the language creators easily get annoyed when asked
about this. They see more value in reserving the syntax for the C
style sequencing operator which is rarely used. Also they have
apparently scientifically proven that the auto-flattening semantics of
tuples somehow works better than real product types, and have no
intention to make it an explicit controllable operation, which is also
easily implementable.

Not so, Andrei has said that he thinks auto-flattening was a bad idea.
And AFAIK, Walter doesn't disagree.

Andrei and I, and almost everyone else, have tried to persuade Walter to
remove the comma operator, but without success. But I doubt you'd be
able to use it for tuples, because x, y = foo(); already has meaning in
C and tuples would give it a different meaning. I'd LOVE to be proved
wrong.

It is very difficult to change Walter's mind about many things, but
despite what people say, it is not impossible.

what's wrong with enclosing tuples in parenthesis?
(x, y) = foo();

int foo();
int bar();

int a = foo(), bar(); // sequence
int b, c;
(b, c) = (foo(), bar()); // tuples
b, c = foo(), bar(); // sequence
(b, c) = foo(), bar(); // error assigning int to (int, int)
b, c = (foo(), bar()); // error assigning (int, int) to int


Reply via email to