From APL Wiki
Revision as of 10:54, 10 August 2022 by Adám Brudzewsky (talk | contribs) (→‎See also)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

APL terminology can be confusing, especially as it often differs from common conventions in computer science, including distinguishing between terms that are usually considered synonyms.

Basic terms

Term Explanation Other names used in Computer Science
Argument an array that a function is applied to Operand, Parameter
Array a collection of elements arranged along zero or more axes (note that a scalar is also an array) Tensor, Multi-dimensional array data structure, Multi-dimensional array data type but note that Scalar Variables are not generally regarded as arrays
Cell a subarray which is formed by selecting a single index along zero or more leading axes and the whole of each trailing axis Array slice
Function a program that is applied to one or two array arguments to produce an array result Subroutine, Program
Major cell a cell of an array which has rank one smaller than the rank of the array, or equal to it if the array is a scalar Element
Matrix an array of rank 2 2D array, Table
Nested array an array that contains at least one element which is not a simple scalar Data structure
Operand an array or function that is passed to an operator Argument, Parameter
Operator a higher-order function that derives a function based on one or two operands Higher-order function
Primitive a built-in function or operator represented by a glyph Language primitive, Operator
Rank the number of dimensions or axes in the structure of an array (the rank is the length of the shape) Degree, Dimensionality, Order
Scalar an array of rank 0 Value
Shape a vector of the lengths of an array along each of its axes (the shape of a scalar is an empty vector) Array dimensions
Simple scalar a number, character, or (in dialects that support such) Namespace Primitive data type, Value
Vector an array of rank 1 Array, List

See also

APL development [edit]
Interface SessionTyping glyphs (on Linux) ∙ FontsText editors
Publications IntroductionsLearning resourcesSimple examplesAdvanced examplesMnemonicsISO 8485:1989ISO/IEC 13751:2001A Dictionary of APLCase studiesDocumentation suitesBooksPapersVideosAPL Quote QuadVector journalTerminology (Chinese, German) ∙ Neural networksError trapping with Dyalog APL (in forms)
Sharing code Backwards compatibilityAPLcartAPLTreeAPL-CationDfns workspaceTatinCider
Implementation ResourcesOpen-sourceMagic functionPerformanceAPL hardware
Developers Timeline of corporationsAPL2000DyalogIBMIPSASTSC