Take with Axes R←X↑[K]Y

Y may be any non-scalar array. X must be a simple integer scalar or vector. K is a vector of zero or more axes of Y.

R is an array of the first or last elements of Y taken along the axes K depending on whether the corresponding element of X is positive or negative respectively.

The rank of R is the same as the rank of Y:

      ⍴⍴R ←→ ⍴⍴Y

The size of each axis of R is determined by the corresponding element of X:

      (R)[,K] ←→ |,X

Examples

      M2 3 4⍴⍳24
 1  2  3  4
 5  6  7  8
 9 10 11 12

13 14 15 16
17 18 19 20
21 22 23 24

      2[2]M
 1  2  3  4
 5  6  7  8

13 14 15 16
17 18 19 20

      2[3]M
 1  2
 5  6
 9 10

13 14
17 18
21 22


      2 ¯2[3 2]M
 5  6
 9 10

17 18
21 22