Monadic operator
In APL syntax, a monadic operator is an operator with one operand, which is written to the operator's left. Outer Product is usually also considered a monadic operator, even though it is written with two symbols and the operand on the right. A specified axis may also be considered a monadic operator, even though its syntax is anomalous: it is written with brackets, and can apply to the Reduce and Scan operators even though operators are not usually allowed to be operands.
The term "monadic operator" refers to the valence of the operator itself, that is, the number of operands. When applied, it produces a derived function, which can have a different function valence. For example, the 2-wise reduction 2 =/ 1 2 2 3
illustrates the monadic operator Reduce (/
) applied to a single operand =
, and then to two arguments 2
and 1 2 2 3
. We say it is a "monadic operator called dyadically".
When called monadically, a monadic operator has the same syntax as a dyadic function: in each case, there is one value to the left and one to the right of the operator or function. The difference is that while the value on the right is always an argument, the one on the left is an operand to the operator but an argument to the function. In some dialects this ambiguity is used to allow function-operator overloading, where a value can be either a monadic operator or a dyadic function depending on context.