On 16.02.2018 21:48, H. S. Teoh wrote:
On Fri, Feb 16, 2018 at 01:16:13PM -0700, Jonathan M Davis via Digitalmars-d 
wrote:
On Friday, February 16, 2018 21:01:02 Martin Nowak via Digitalmars-d wrote:
On 01/14/2018 12:21 AM, Timon Gehr wrote:
what would be the equivalent of this ?
` writeln(tuple!("x", "y", "z")(2, 3, 4).y); `

It would continue to work the same way.

I did consider adding a proposal for built-in named tuple syntax:

writeln((x: 2, y: 3, z: 4).y);

(int a, double b) t = (a: 1, b: 2.0);
int x = t.a;
double y = t.b;

Tuples are anonymous bundles, when you want a product type with
field names use a struct.

That's not necessarily unreasonable, but std.typecons.Tuple is frequently
used as a convenient way to return a group of values, and the trend has been
towards using named values, because those are easier to deal with as return
values, because they're somewhat self-documenting at that point, and they're
less error-prone. So, if we're talking about adding more complete tuples to
the language, if they don't have support for names, you then have the
problem of whether it's better to use the built-in tuples or something like
std.typecons.Tuple with named values, and there's a pretty strong argument
at that point that it's better to use the named tuples and lose whatever
benefits the built-in tuples might provide, because the named tuples result
in more maintainable code.
[...]

Tuples with named fields are essentially anonymous structs.  If we had
those, 60% of what this DIP addresses would already have been solved.
Cf.:

        https://forum.dlang.org/post/kfbnuc$1cro$1...@digitalmars.com


T


You got that number a bit too high.
The DIP is mostly about tuple unpacking.

Reply via email to