; in J, is a monadic function which combines element arrays of a nested vector along the first axis (in accordance with leading axis theory). Thus, the major cells of the Raze of an array are the major cells of its element arrays: unlike Mix, which removes a level of depth while keeping outer and inner axes separate, Raze merges the outer vector's axis with the first axis of each element. Raze is present in A+ and J.
⊃(2 3 4;0 1;5) 2 3 4 0 1 5
When elements of the argument have rank more than 1, Raze combines them along the leading axis, like Catenate First. In A+, the elements must have the same rank and major cell shape or an error results; in J, lower-rank arrays are promoted to a higher rank and arrays are padded with fills to a common major cell shape.
⊃(⍳2 2;-⍳4 2) 0 1 2 3 0 ¯1 ¯2 ¯3 ¯4 ¯5 ¯6 ¯7
Raze is similar to the Catenate reduction
X is a vector whose elements have equal and positive rank, then
↑⍪/X is the Raze of
X. The definition differs if
X is a singleton vector with scalar elements, because the Raze of
X will be a vector while the reduction implementation results in a scalar (or, in NARS2000, a DOMAIN ERROR). This is because Raze treats scalar elements of its argument as singleton vectors, a convention which may be viewed as scalar rank extension or as a result of the idea that a scalar's only major cell is itself.
Raze is the inverse of Partition and Partitioned Enclose on vectors: partitioning, then razing, a vector gives that vector back. It is also an inverse to partition functions which partition major cells along the first axis, although few partition functions do this.