Array Lookup
From NARS2000
Revision as of 20:16, 15 April 2018 by Sudleyplace (talk  contribs)


L and R are arbitrary arrays.  
Z is an array of rank 0⌈1+(⍴⍴R)⍴⍴L and shape (1⍴⍴L)↓⍴R.  
For matrices, the result is equivalent to (⊂[2] L)⍳⊂[2] R (lookup the rows of one array in another) which encapsulates a common idiom in one symbol.  
For higher rank arrays, the arguments are enclosed to become vectors of subarrays and then the usual lookup produces the final result.  
This function is sensitive to both ⎕IO and ⎕CT. 
For example, in origin1
⎕←L←6 4⍴'DinaDickJohnJaneSue Mary Dina Dick John Jane Sue Mary ⎕←R←3 4⍴'JaneBob Sue '
Jane Bob Sue L⍸R 4 7 5
This function was suggested by the language designers of Dyalog APL.