Index (function)
- This article describes a dyadic primitive function that performs indexing into an array. For the concept of array indices, see Index. For the concept of extracting items from an array, see Indexing.
Index (⌷
), also called Squad Indexing after the name of the glyph, is a dyadic primitive function. The result of X⌷Y
is an array formed with items of Y extracted by the index specification X. Index is a proper function alternative to a mode of bracket indexing (which uses a dedicated syntax Y[X]
), making it usable within tacit programming. It shares its glyph with the monadic Materialise function.
Examples
The left argument X must be a vector whose length equals the rank of the right argument Y and depth does not exceed 2. Each element of X selects one or more indices over the corresponding axis of the right argument Y. The result is identical to that of bracket indexing in that Y[X1;X2;…;Xn] ≡ X1 X2 … Xn⌷Y
. The resulting shape equals the concatenation of the shapes of each element of X.
VEC←111 222 333 444 3⌷VEC 333 (⊂4 3)⌷VEC 444 333 (⊂2 3⍴3 1 4 1 2 3)⌷VEC 333 111 444 111 222 333 ⎕←MAT←10⊥¨⍳3 4 11 12 13 14 21 22 23 24 31 32 33 34 3(2 1)⌷MAT 32 31 ⍴(2 1⍴1)(3 4⍴2)⌷MAT 2 1 3 4
When used with function axis in the form of X⌷[K]Y
, K specifies a subset of axes of Y to apply indexing on. The axes not mentioned in K are selected without modification; this corresponds to omitted axes in bracket indexing.
⎕←CUBE←10⊥¨⍳2 3 4 111 112 113 114 121 122 123 124 131 132 133 134 211 212 213 214 221 222 223 224 231 232 233 234 2⌷[1]CUBE 211 212 213 214 221 222 223 224 231 232 233 234 2⌷[3]CUBE 112 122 132 212 222 232 CUBE[;;2] ≡ 2⌷[3]CUBE 1
In some dialects that support leading axis theory, short X in X⌷Y
selects from leading axes of Y. In that case, the trailing axes are selected without modification.
MAT←10⊥¨⍳3 4 ⍝ Same as the first example 2⌷MAT ⍝ Second axis omitted 21 22 23 24
Implementation support
This form of indexing is supported in J as boxed left argument of From {
.
See also
External links
Documentation