DIP32: Uniform tuple syntax

Simen Kjærås simen.kjaras at gmail.com
Mon Apr 1 04:14:23 PDT 2013


On Mon, 01 Apr 2013 09:08:47 +0200, Traveler <nooneknows at example.com>  
wrote:

> On Friday, 29 March 2013 at 08:58:06 UTC, kenji hara wrote:
>> http://wiki.dlang.org/DIP32
>>
>> Kenji Hara
>
> Why not square brackets?
>
> int i;
> string str;
>
> [i, str] = [5, "line"];
>
> Tuple as alias to Object[] or to Variant[].

Mostly because it already has a meaning in D, namely that of an array.  
What you have above certainly does not compile, but consider the case of a  
homogeneous tuple:

     int i = 1, j = 2;
     [i, j] = [3, 4];

This is equivalent to this code:

     [1, 2] = [3, 4];

Which of course is nonsense, but it already has a meaning. Using an  
existing syntax leads to many many more corner cases and gray areas than  
creating a new syntax does. Of course, {} also has a meaning already, but  
the overlap of semantics is much smaller, and thus the potential corner  
cases and gray areas are fewer and smaller.

-- 
Simen


More information about the Digitalmars-d mailing list