Primitive function

From APL Wiki
Jump to navigation Jump to search

A primitive function is a function defined by the language. Outside of the array community, such functions may be called "builtin" or "intrinsic" functions. In APL, each is represented with a single glyph; in other languages, such as those restricted to ASCII characters, they may use multiple characters ("bigraphs" and "trigraphs" are combinations of two and three characters, respectively).

Other parts of APL which are written with a single glyph include primitive operators and Quad.

Early APL implementations divided primitives into scalar functions, which apply one element at a time, and mixed functions, which do not. Modern APLs universally retain the terminology "scalar function" but may deemphasize its opposite "mixed function" or subdivide it further. Two prominent subcategories of functions are structural functions, which rearrange elements of the argument or its subarrays without regard to their values, and set functions, which return a result or manipulate arrays based on which cells or elements match other cells or elements.

A function is distinct from the glyph used to denote it. Different APLs, or even one APL (using migration level) might use the same glyph for multiple functions, or different glyphs for identical or similar functions. The term "function" can, depending on context, refer either to an ambivalent function which can be applied with one or two arguments, or the monadic or dyadic function obtained by restricting that function to either one or two arguments specifically.


APL built-ins [edit]
Primitive functions
Scalar
Monadic ConjugateNotRollType
Dyadic PlusEqual to (Xnor) ∙ Not Equal to (Xor)
Non-Scalar
Structural ShapeReshapeDepthRavelReverse
Selection TakeDropUnique
Selector
Computational
Primitive operators Each
Quad names
Constants Index originMigration level
Functions
Operators
Other ZildeHigh minus