AliasTuples, rather than Records, to return multiple values

Dario Schiavon dario.schiavon at gmail.com
Fri May 18 04:07:01 PDT 2012


On Thursday, 17 May 2012 at 23:11:55 UTC, deadalnix wrote:
> Le 17/05/2012 19:27, H. S. Teoh a écrit :
>> On Thu, May 17, 2012 at 07:20:38PM +0200, deadalnix wrote:
>> [...]
>>> I think you show a real need here, but I don't really like 
>>> your
>>> proposal. I'd advocate for recycling the comma operator for 
>>> tuple
>>> building.
>>
>> +1.
>>
>> I know the topic of comma operator has been beaten to death 
>> several
>> times over, but I'm curious, how much is it _actually_ being 
>> used
>> outside of for loops? Would introducing (x,y,z) tuple syntax 
>> _really_
>> break a lot of code? Would it even break _any_ code? -- since 
>> tuple
>> syntax would tend to be used where you normally don't use the 
>> comma
>> operator.
>>
>>
>> T
>>
>
> I'd advocate for the following behavior :
> 1/ void member of tuple are computed, but not stored in the 
> tuple.
> 2/ A tuple with one member can unpack automagically.
>
> With both, I'm pretty the code broken is close to none.
>
> To go further, I advocate for declaration to be expression. It 
> would allow (int a, int b) = foo();
>
> Which rox, as Andrei said :D

Can you please argument the reasons behind the need of those two 
rules? Do you propose void members to allow for empty and 
single-item tuples, as in "void" and "a,void"? And why should a 
single-item tuple automagically unpack instead of being unpacked 
with tuple[0]?

Declarations as expressions are cool! :D


More information about the Digitalmars-d mailing list