Case Range Statement ..

Ary Borenszweig ary at esperanto.org.ar
Tue Jul 7 14:07:29 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.  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.  Well, geez!  Why not just make tuples first-class?

Yeah, really. The TupleType already exists in the compiler, but just 
can't be expressed and passed around in the language.

I had trouble with this in Descent, for example:

auto x = Foo.tupleof;

Now you hover over "auto" and it should show you the type, but... the 
type is magical! That was when I found out about tuples. Now I show that 
as "Tuple!(...)", which is incorrect because it's not a template, but 
the language can't represent tuples.

So there should be a syntax to represent tuples also...



More information about the Digitalmars-d mailing list