Index Of: Difference between revisions
From NARS2000
Jump to navigationJump to search
Sudleyplace (talk | contribs) No edit summary |
No edit summary |
||
Line 23: | Line 23: | ||
<tr> | <tr> | ||
<td>This feature extends dyadic iota to rank > 1 left arguments.</td> | <td>This feature extends dyadic iota to rank > 1 left arguments.</td> | ||
</tr> | |||
<tr> | |||
<td>This function is sensitive to <apll>⎕IO</apll>.</td> | |||
</tr> | </tr> | ||
</table> | </table> |
Revision as of 10:36, 26 May 2013
|
||||
L is an array of rank > 1. | ||||
R is an arbitrary array. | ||||
Z is a nested array of shape ⍴R whose items are each integer vectors of length ⍴⍴L, suitable for use as indices to L, except for where the item in R is not found in L, in which case the corresponding item in Z is ⎕IO+⍴L. | ||||
This feature extends dyadic iota to rank > 1 left arguments. | ||||
This function is sensitive to ⎕IO. |
For example, in origin-1
M←2 3⍴'abcdef'
M⍳'afg'
1 1 2 3 3 4
M[M⍳'af']
af
This extension is implemented via an internal magic function:
∇ Z←L #DydIota R;⎕IO;O
[1] O←⎕IO ⋄ ⎕IO←0
[2] Z←⊂[0] O+(1+⍴L)⊤(¯1↓,(1+⍴L)↑L)⍳R
∇