Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
April 02, 2013 Basic Syntax Question | ||||
---|---|---|---|---|
| ||||
I don't suppose there is a digital.D.beginner forum? I've been staring at this definition for about an hour and I still can't decode it. int[string][double[int[]]] a; // ... auto b = to!(short[wstring][string[double[]]])(a); // this doesn't help either int[string} a // would be an Associate Array of integers with a string key? int[] // would be a dynamic array of integers,i believe? But put the int[] inside of double[] and put that inside of [] and put that after the associative array, and my head can't stop for spinning. If there is a better site or forum, please tell me and I won't waste people's time here. I did buy Andrei Alexandrescu's book and have it pretty well dog-eared. But i must be a pretty mediocre programmer. |
April 02, 2013 Re: Basic Syntax Question | ||||
---|---|---|---|---|
| ||||
Posted in reply to WhatMeWorry | On Tuesday, 2 April 2013 at 16:24:46 UTC, WhatMeWorry wrote: > > I don't suppose there is a digital.D.beginner forum? > There is D.learn. Scroll down in the webinterface :-) > I've been staring at this definition for about an hour and I still can't decode it. > > int[string][double[int[]]] a; // Read it left to right :-) Let's rewrite the type with placeholders U,V. int[string][double[int[]]] --> int[U][V] int[U][V] is an AA mapping keys of type V to values int[U], which is itself an AA that maps U's to int's. Now, what is U and V? U is string that was easy. V is double[int[]]. That again is an AA, mapping from int[] to double. > int[string} a // would be an Associate Array of integers with a string key? Nope, thats in syntax error. > int[] // would be a dynamic array of integers,i believe? > Correct. |
April 02, 2013 Re: Basic Syntax Question | ||||
---|---|---|---|---|
| ||||
Posted in reply to WhatMeWorry | On Tuesday, 2 April 2013 at 16:24:46 UTC, WhatMeWorry wrote:
>
> I don't suppose there is a digital.D.beginner forum?
>
> I've been staring at this definition for about an hour and I still can't decode it.
>
> int[string][double[int[]]] a; //
> ...
> auto b = to!(short[wstring][string[double[]]])(a); // this doesn't help either
>
>
> int[string} a // would be an Associate Array of integers with a string key?
>
> int[] // would be a dynamic array of integers,i believe?
>
> But put the int[] inside of double[] and put that inside of [] and put that after the associative array, and my head can't stop for spinning.
>
>
> If there is a better site or forum, please tell me and I won't waste people's time here. I did buy Andrei Alexandrescu's book and have it pretty well dog-eared. But i must be a pretty mediocre programmer.
I'm confused, did you find that definition somewhere or did you write it yourself?
int[string][double[int[]]]
Let's split it up:
alias double[int[]] T;
T is an associative array with key type int[] and value type double
So we now have
int[string][T]
Which is an associative array with key type T and value type int[string] (itself an associative array)
I hope that makes more sense.
|
April 02, 2013 Re: Basic Syntax Question | ||||
---|---|---|---|---|
| ||||
Posted in reply to Tobias Pankrath | On Tuesday, 2 April 2013 at 16:51:45 UTC, Tobias Pankrath wrote: > On Tuesday, 2 April 2013 at 16:24:46 UTC, WhatMeWorry wrote: >> >> I don't suppose there is a digital.D.beginner forum? >> > > There is D.learn. Scroll down in the webinterface :-) This is in D.learn already. >> int[string} a // would be an Associate Array of integers with a string key? > > Nope, thats in syntax error. Just a } vs ] typo (just to avoid confusion) |
April 02, 2013 Re: Basic Syntax Question | ||||
---|---|---|---|---|
| ||||
Posted in reply to WhatMeWorry | On 04/02/2013 09:24 AM, WhatMeWorry wrote:> > I don't suppose there is a digital.D.beginner forum? > > I've been staring at this definition for about an hour and I still can't > decode it. > > int[string][double[int[]]] a; // alias usually makes the syntax cleaner but that is still pretty crazy. :) void main() { int[string][double[int[]]] a; alias Numbers = int[]; alias NumbersToDoubleDict = double[Numbers]; alias StringToIntDict = int[string]; alias CrazyDict = StringToIntDict[NumbersToDoubleDict]; CrazyDict b; static assert(is(typeof(a) == typeof(b))); } Ali |
April 02, 2013 Re: Basic Syntax Question | ||||
---|---|---|---|---|
| ||||
Posted in reply to John Colvin | On Tuesday, 2 April 2013 at 16:52:17 UTC, John Colvin wrote:
int[string][double[int[]]] a;
>
> I'm confused, did you find that definition somewhere or did you write it yourself?
>
I found the above in an example in std.conv; Thank you, but I can assure you my brain is not powerful enough to come up with such a construct.
|
Copyright © 1999-2021 by the D Language Foundation