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