Depth (⎕ML) R←≡Y
Y
may be any array. R
is the maximum number of levels of nesting of Y
. A simple scalar (rank-0 number, character or namespace-reference) has a depth of 0.
A higher rank array, all of whose items are simple scalars, is termed a simple array and has a depth of 1. An array whose items are not all simple scalars is nested and has a depth 1 greater than that of its most deeply nested item.
Y
is of uniform depth if it is simple or if all of its items have the same uniform depth.
If ⎕ML<2
and Y
is not of uniform depth then R
is negated (therefore, when ⎕ML<2
, a negative value of R
indicates non-uniform depth).
Examples
≡1
0
≡'A'
0
≡'ABC'
1
≡1 'A'
1
⎕ML←0
≡A←(1 2)(3 (4 5)) ⍝ Non-uniform array
¯3
≡¨A ⍝ A[1] is uniform, A[2] is non-uniform
1 ¯2
≡¨¨A
0 0 0 1
⎕ML←2
≡A
3
≡¨A
1 2
≡¨¨A
0 0 0 1