// Test subrange assignments proc main() { var a = ['A':'Z'].reshape(4,4,4); var b = @a; var c = @a; var d = @a; // Scalar assignment - put a hole in the array a[1:2,1:2,1:2] = ' '; // Matrix assignment - must match shape b[1:2,1:2,1:2] = ['a':'z'].reshape(2,2,2); // Incremental assignment c[1:2,1:2,1:2] += 32; // Incremental assignment by a matrix d[1:2,1:2,1:2] += (1+[2,2,2].iterate()); "", a, b, c, d, '\n'; "\nNext statement should throw a ShapeCheck\n"; try { b[1:2,1:2,1:2] = ['a':'z'].reshape(3,2,2); } catch (e) { "Caught ", e, '\n'; } }