## Mixed Functions

Mixed rank functions are summarised in Table 10. For convenience, they are sub-divided into five classes:

Table 10: Mixed rank functions

 Structural These functions change the structure of the arguments in some way. Selection These functions select elements from an argument. Selector These functions identify specific elements by a Boolean map or by an ordered set of indices. Miscellaneous These functions transform arguments in some way, or provide information about the arguments. Special These functions have special properties.

In general, the structure of the result of a mixed primitive function is different from that of its arguments.

Scalar extension may apply to some, but not all, dyadic mixed functions.

Mixed primitive functions are not pervasive. The function is applied to elements of the arguments, not necessarily independently.

#### Examples

```      'CAT' 'DOG' 'MOUSE'⍳⊂'DOG'
2
3↑ 1 'TWO' 3 'FOUR'
1  TWO  3```

In the following tables, note that:

• [] Implies axis specification is optional
• \$ This function is in another class

Table 11: Structural Primitive Functions

\$ Reshape
, Ravel [] Catenate/Laminate[]
Table Catenate First / Laminate []
Reverse [] Rotate []
Reverse First [] Rotate First []
Transpose Transpose
Mix/Disclose (First) [] \$
Split [] \$
Enclose [] Partitioned Enclose []
Enlist (See Type) \$

Table 12: Selection Primitive Functions

Disclose /Mix Pick
\$ Take []
\$ Drop []
/   Replicate []
Replicate First []
\   Expand []
Expand First []
~ \$ Without (Excluding)
Intersection
Unique Union
Same Left
Identity Right

Table 13: Selector Primitive Functions

Index Generator Index Of
\$ Membership
? \$ Deal
Find

Table 14: Miscellaneous Primitive Functions

Shape \$
Depth Match
Tally Not Match
Execute Execute
Format Format
Decode (Base)
Encode (Representation)
Matrix Divide Matrix Inverse

Table 15: Special Primitive Functions