DIP19: Remove comma operator from D and provision better syntactic support for tuples
foobar
foo at bar.com
Thu Sep 27 06:07:39 PDT 2012
On Thursday, 27 September 2012 at 10:58:12 UTC, Jonathan M Davis
wrote:
> On Thursday, September 27, 2012 11:37:10 foobar wrote:
>> I do _not_ want to consider two different _structs_ (nominal
>> types) as the same type. I would like to get correct tuple
>> semantics which means _structural_ typing (I thought I
>> emphasized
>> that enough in the OP).
>> A tuple is defined by its contained types, *not* its name.
>
> What on earth does structural typing get you here? A tuple is a
> collection of
> values of varying types. If you have Tuple!(X, Y, Z), it
> defines a tuple
> containing the types X, Y, and Z. _All_ tuples with those types
> will be Tuple!
> (X, Y, Z). The _only_ reason that this isn't quite the case is
> the nonsense
> with being able to give names to the fields in a tuple (and
> adding an alias
> this to Tuple should be able to fix that). Being able to create
> your own tuple
> type which you can compare with Tuple simply because it happens
> to hold the
> same types is completely pointless as far as I can tell (but
> you can still do
> it if you really want to). If you want a tuple, then just use
> std.typecons.Tuple. Creating another tuple type buys you
> nothing.
>
> - Jonathan M Davis
std.typecons.Tuple *is* a struct.
I agree with the above definition of tuples, but I want the
language to ensure that which at the moment it can't.
More information about the Digitalmars-d
mailing list