Tuple literal syntax

Denis Koroskin 2korden at gmail.com
Sun Oct 10 07:00:32 PDT 2010


On Sun, 10 Oct 2010 17:39:52 +0400, Stephan Soller  
<stephan.soller at helionweb.de> wrote:

> On 07.10.2010 17:36, Andrei Alexandrescu wrote:
>> On 10/7/10 10:13 CDT, Kagamin wrote:
>>> Andrei Alexandrescu Wrote:
>>>
>>>> struct Coord
>>>> {
>>>> int x, y, z;
>>>> }
>>>>
>>>> one iota typesafer than
>>>>
>>>> alias Tuple!(int, "x", int, "y", int, "z") Coord;
>>>
>>> Is there a real need for an alternative way to declare structs?
>>
>> Yes.
>>
>> Andrei
>
> I agree but I also don't agree. I like the possibility to return  
> multiple values (quite handy in Ruby, PHP and other languages) and  
> therefore we need language constructs to group multiple values and  
> ungroup them again.
>
> However as soon as these fields are named it looks to me like an  
> ordinary structure. So why not just create something like an "anonymous  
> structure literal" that behaves to structures like anonymous functions  
> (or delegates) to functions?
>
> This would look a lot more consistent to me than playing around with  
> different kinds of tuples. However I'm not sure about the details (e.g.  
> how would such structures handle type or alias contents).
>
> Happy programming
> Stephan

Exactly. To be honest, I see absolutely no reason to have yet another to  
declare structs, but some people have other preferences.
I don't mind having Tuple in a library, as long as I'm not insisted in  
using it *and* it doesn't affect other language features.

I mean, it's not even shorter to write

alias Tuple!(int, "x", int, "y", int, "z") Coord;

than

struct Coord { int x; int y; int z; }


More information about the Digitalmars-d mailing list