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.


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

In the following tables, note that:


Table 11: Structural Primitive Functions

Symbol Monadic Dyadic
$ 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

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


Table 13: Selector Primitive Functions

Symbol Monadic Dyadic
Index Generator Index Of
$ Membership
Grade Up Grade Up
Grade Down Grade Down
? $ Deal

Table 14: Miscellaneous Primitive Functions

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

Table 15: Special Primitive Functions

Symbol Monadic Dyadic
$ Assignment
[I]← $ Assignment(Indexed)
(I)←   Assignment(Selective)
[]   Indexing