Case Range Statement ..

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Tue Jul 7 14:14:40 PDT 2009


Jarrett Billingsley wrote:
> On Tue, Jul 7, 2009 at 4:15 PM, Andrei 
> Alexandrescu<SeeWebsiteForEmail at erdani.org> wrote:
>> Jarrett Billingsley wrote:
>>> On Tue, Jul 7, 2009 at 3:49 PM, Jarrett 
>>> Billingsley<jarrett.billingsley at gmail.com> wrote:
>>>> On Tue, Jul 7, 2009 at 3:38 PM, Walter
>>>> Bright<newshound1 at digitalmars.com> wrote:
>>>>> Nick Sabalausky wrote:
>>>>>> Someone else said it's also an expression that evaluates to
>>>>>> 3, but that seems beyond useless to me.
>>>>> It's handy when you want to prefix one expression to another,
>>>>> as in:
>>>>> 
>>>>> (foo(), x + 3)
>>>> Cause you want to do that so often, after all.
>>>> 
>>>> *snort*
>>> A more constructive reply: tuuuuples.  TUPLES.  Returning them!
>>> Using them as first-class values!  Yes.
>> Just prepend "tuple" and you're home at a low price.
> 
> I can't return tuples.  I have to wrap them in a struct.

Yes, the struct is called Tuple and is present in std.typecons. There's
also a function called tuple() that returns a Tuple with deduced
parameters. Try it!

> If I do that, then I can't index the struct as if it were a real
> tuple.  Okay, then I use 'alias this', and I end up with this struct
> that exists for no purpose other than to get around a silly
> limitation in the type system.

Alias this has vastly more applications. Tuple has alias this commented
out because there are related bugs in the compiler that I didn't get to.

> Well, geez!  Why not just make tuples first-class?

That would be a fish. We want to learn fishing.


Andrei



More information about the Digitalmars-d mailing list