Carl came up with the improved syntax which now works:
a) int[10] i = { [j] = j + 1 };
b) int[10] i = { [j] {
int c = 0;
for (int k = 0; k <= j; k++)
c += k;
return c;
} };
Bart asked for a way to name the array inside the comprehension, so I came
up with '[]':
int[10] i = { [j] = dim([]) - j };
-keith