DIP19: Remove comma operator from D and provision better syntactic support for tuples

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Sep 24 16:39:30 PDT 2012


On 9/24/12 6:28 PM, bearophile wrote:
> Timon Gehr:
>
>>> My bikeshed is colored one of these:
>>>
>>> (:1,2)
>>> (|1,2)
>>>
>>
>> At that point you might as well just use
>>
>> import std.typecons : q = tuple, Q = Tuple;
>>
>> Q!(int, int) foo(){
>> return q(1, 2);
>> }
>>
>> If built-in tuples are not going to look like
>>
>> (1, 2)
>>
>> then imho we might as well leave them out,
>
> But the banana syntax doesn't look bad:
>
> (||)
> (|1|)
> (|1, 2|)
> (|1, 2, 3|)

tuple()
tuple(1)
tuple(1, 2)
tuple(1, 2, 3)

also arguably enjoys the same advantages and in fact is much more 
intuitive. Like, totally intuitive. Like, it says "tuple" to create a 
tuple. And one advantage is, there's never ever going to be butt jokes 
about tuple() as there'd be with "(||)".

> It's short enough, it's not visually noisy, it's simple enough to
> type, it consistently avoids the problems with literals for
> 0-tuples and 1-tuples, and it's sufficiently intuitive once you
> have seen it one time. It's just a bit longer to type than the
> syntax with simple (), that has problems with the shorter tuples.
>
> The now dead Fortress language used several similar syntaxes,
> like (|...|), {|...|}, [|...|], etc.

Well let's not take inspiration from dead languages :o).


Andrei


More information about the Digitalmars-d mailing list