# Terminology: Difference between revisions

Jump to navigation
Jump to search

(Removed redirect to German terminology) Tag: Removed redirect |
|||

(3 intermediate revisions by the same user not shown) | |||

Line 1: | Line 1: | ||

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

== Basic terms == | == Basic terms == | ||

{| class=wikitable | {| class=wikitable | ||

! Term !! Explanation !! | ! Term !! Explanation !! Other names used in Computer Science | ||

|- | |- | ||

| [[Argument]] || an [[array]] that a [[function]] is applied to || | | [[Argument]] || an [[array]] that a [[function]] is applied to || [[wikipedia:Operand|Operand]], [[wikipedia:Parameter (computer programming)|Parameter]] | ||

|- | |- | ||

| [[Array]] || a collection of [[element]]s arranged along '''zero''' or more [[axes]] (note that a [[scalar]] is also an array) || [[wikipedia:Tensor#As_multidimensional_arrays|Tensor]], [[wikipedia:Array_data_structure#Multidimensional_arrays|Multi-dimensional array data structure]], [[wikipedia:Array_data_type#Multi-dimensional_arrays|Multi-dimensional array data type]] but note that [[wikipedia:Scalar (mathematics)|Scalar]] [[wikipedia:Variable (computer science)|Variable]]s are not generally regarded as arrays | | [[Array]] || a collection of [[element]]s arranged along '''zero''' or more [[axes]] (note that a [[scalar]] is also an array) || [[wikipedia:Tensor#As_multidimensional_arrays|Tensor]], [[wikipedia:Array_data_structure#Multidimensional_arrays|Multi-dimensional array data structure]], [[wikipedia:Array_data_type#Multi-dimensional_arrays|Multi-dimensional array data type]] but note that [[wikipedia:Scalar (mathematics)|Scalar]] [[wikipedia:Variable (computer science)|Variable]]s are not generally regarded as arrays | ||

|- | |- | ||

| [[Cell]] || a [[subarray]] which is formed by selecting a single [[index]] along | | [[Cell]] || a [[subarray]] which is formed by selecting a single [[index]] along zero or more leading [[axes]] and the whole of each trailing axis || [[wikipedia:Array slicing|Array slice]] | ||

|- | |- | ||

| [[Function]] || a program that is applied to one or two [[array]] [[argument]]s to produce an array result || [[wikipedia:Subroutine|Subroutine]], [[wikipedia:Computer program|Program]] | | [[Function]] || a program that is applied to one or two [[array]] [[argument]]s to produce an array result || [[wikipedia:Subroutine|Subroutine]], [[wikipedia:Computer program|Program]] | ||

Line 16: | Line 16: | ||

| [[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 | | [[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 || Table | | [[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]] || [[wikipedia:Data structure|Data structure]] | | [[Nested array]] || an [[array]] that contains at least one [[element]] which is not a [[simple scalar]] || [[wikipedia:Data structure|Data structure]] | ||

Line 22: | Line 22: | ||

| [[Operand]] || an [[array]] or [[function]] that is passed to an [[operator]] || Argument, [[wikipedia:Parameter (computer programming)|Parameter]] | | [[Operand]] || an [[array]] or [[function]] that is passed to an [[operator]] || Argument, [[wikipedia:Parameter (computer programming)|Parameter]] | ||

|- | |- | ||

| [[Operator]] || a higher-order function that | | [[Operator]] || a higher-order function that [[derived function|derives a function]] based on one or two [[operands]] || [[wikipedia:Higher-order function|Higher-order function]] | ||

|- | |- | ||

| [[Primitive]] || a built-in [[function]] or [[operator]] | | [[Primitive]] || a built-in [[function]] or [[operator]] represented by a [[glyph]] || [[wikipedia:Language primitive|Language primitive]], [[wikipedia:Operator (computer programming)|Operator]] | ||

|- | |- | ||

| [[Rank]] || the number of dimensions or [[axes]] in the structure of an [[array]] || Order | | [[Rank]] || the number of dimensions or [[axes]] in the structure of an [[array]] (the rank is the [[Tally|length]] of the [[shape]]) || Degree, Dimensionality, Order | ||

|- | |- | ||

| [[Scalar]] || an [[array]] of [[rank]] 0 || Value | | [[Scalar]] || an [[array]] of [[rank]] 0 || Value | ||

|- | |- | ||

| [[Shape]] || a [[vector]] of lengths of an [[array]] along each of its [[axes]] || Array dimensions | | [[Shape]] || a [[vector]] of the lengths of an [[array]] along each of its [[axes]] (the shape of a [[scalar]] is an [[zilde|empty vector]]) || Array dimensions | ||

|- | |- | ||

| [[Simple scalar]] || a [[number]], [[character]], or (in dialects that support such) [[Namespace]] || [[wikipedia:Primitive data type|Primitive data type]], [[wikipedia:Value (computer science)|Value]] | | [[Simple scalar]] || a [[number]], [[character]], or (in dialects that support such) [[Namespace]] || [[wikipedia:Primitive data type|Primitive data type]], [[wikipedia:Value (computer science)|Value]] | ||

Line 36: | Line 36: | ||

| [[Vector]] || an [[array]] of [[rank]] 1 || Array, [[wikipedia:List (abstract data type)|List]] | | [[Vector]] || an [[array]] of [[rank]] 1 || Array, [[wikipedia:List (abstract data type)|List]] | ||

|} | |} | ||

== See also == | |||

* [[German terminology]] | |||

* [[Chinese terminology]] | |||

{{APL development}}[[Category:Lists]] | {{APL development}}[[Category:Lists]] |

## Latest revision as of 10:54, 10 August 2022

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 | Session ∙ Typing glyphs (on Linux) ∙ Fonts ∙ Text editors |

Publications | Introductions ∙ Learning resources ∙ Simple examples ∙ Advanced examples ∙ Mnemonics ∙ Standards ∙ A Dictionary of APL ∙ Case studies ∙ Documentation suites ∙ Books ∙ Papers ∙ Videos ∙ Periodicals ∙ Terminology (Chinese, German) ∙ Neural networks ∙ Error trapping with Dyalog APL (in forms) |

Sharing code | Backwards compatibility ∙ APLcart ∙ APLTree ∙ APL-Cation ∙ Dfns workspace ∙ Tatin ∙ Cider |

Implementation | Developers (APL2000, Dyalog, GNU APL community, IBM, IPSA, STSC) ∙ Resources ∙ Open-source ∙ Magic function ∙ Performance ∙ APL hardware |