In APL syntax, an argument is one of the values passed to a function. The valence of a function is determined by the number of arguments it takes: niladic functions take no arguments and are immediately evaluated; non-niladic functions may be called monadically (with one argument) or dyadically (with two arguments). Every non-niladic function is called with a right argument while only a dyadic function call uses a left argument.
Arguments in APL must be arrays. In other languages in the APL family this might not be the case: arguments may be allowed to be other functions, and there may be other first-class datatypes which are not arrays.
When a non-niladic function is called, its valence is determined from the context around it: if there is a valid argument to its left, it will be called dyadically with that value as its left argument, and otherwise it will be called monadically. A function always needs a valid argument to its right in order to be called directly. Derived functions and trains follow different rules: the valence of a function within one of these function depends on its context (for example, the operator which it is an operand of) and the valence of the entire derived function.
|APL syntax |
|Overview||Comparison with traditional mathematics ∙ Precedence|
|Array||Numeric literal ∙ String ∙ Strand notation ∙ Object literal ∙ Array notation|
|Function||Argument ∙ Function valence ∙ Derived function ∙ Function train ∙ Monadic function ∙ Dyadic function ∙ Ambivalent function|
|Operator||Operand ∙ Operator valence ∙ Derived function ∙ Derived operator|
|Assignment||Multiple ∙ Indexed ∙ Selective ∙ Modified|
|User definition||Tradfn ∙ Dfn ∙ Tacit|
|Other||Function axis ∙ Branching ∙ System command ∙ User command ∙ Keyword ∙ Dot notation|