Size: 3722
Comment:
|
Size: 5589
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= Glossary Of Apl Terms = Please have a glance at: http://en.wikipedia.org/wiki/APL_(programming_language)#APL_Glossary It (the wikipedia table) has kilobytes of critcism on its Discussion page, is inconsistent, grammatically incorrect and should be replaced or removed. In fact the whole page is a mess but I'm not willing to tangle with the wikifascists over it. The following is my suggestion for its replacement. It (preferably a better version) could be copied to wikipedia or the existing table could just be replaced with a link back here after we get it right. Either way this source can serve as Reference to avoid getting into the whole business with "[citation needed]" after every obvious statement of fact. Please criticise it (the table below) mercilessly, add, amend, delete and let's get a consensus. Don't be frightened, you can hit [Preview] as many times as you like to get it right and you can always [Cancel] before [Save Changes] if you think you've messed it up. Try to keep it as far as possible that terms used in a description are defined previously in the table. Try to keep it short enough that it doesn't attract criticism from others that we've just copied the language reference. Oh, and I think it'd be better left without examples. I've assumed: 'object', 'parameter', 'operation', 'assignment' & 'data' as being terms whose general meanings don't differ sufficiently across most computer languages to require a definition here. Over and out! -- PhilLast <<DateTime(2009-06-11T17:45:40Z)>> |
#acl PhilLast:read,write All:read = Glossary of APL terms = APL literature includes many terms whose meanings, though rigorous, differ slightly from elsewhere. Terms used but not defined here follow normal usage or are defined at FOLDOC<<FootNote(''FOLDOC:'' see [[http://foldoc.org/|The Free On-Line Dictionary Of Computing]], Editor Denis Howe)>>. ||<rowclass="odd">'''Term''' ||'''Description'''|| ||<rowclass="even">''ambivalent''||(or nomadic<<FootNote(''nomadic:'' see [[http://www.microapl.co.uk/APL/apl_concepts_chapter6.html|APLX concepts]])>>)(of a ''dyadic'' ''function'') permitting its left ''argument'' to be elided.|| ||<rowclass="odd">''argument'' ||value or reference passed to a ''function'' or ''operator''.|| ||<rowclass="even">''array'' ||(or variable) data valued object of zero or more orthogonal dimensions in row-major order in which each ''item'' is a primitive ''scalar'' or another ''array''.|| ||<rowclass="odd">''cell'' ||(of an array) sub-array whose dimensions are a suffix of those of the whole. The 2-cells of a 3D array are the planes whose dimensions are the numbers of rows and columns of the 3d ''array''.|| ||<rowclass="even">''define'' ||create by lexical assignment<<FootNote(''define by lexical assignment:'' {{{assigned←{expression in terms of ⍺ and/or ⍵} }}})>> or association<<FootNote(''define by lexical association:'' {{{⎕FX 'r←a associated w' 'r←expression in terms of a and/or w'}}})>> or in an editor<<FootNote(''define in an editor:'' {{{∇edited}}} or {{{)EDIT edited}}})>>.|| ||<rowclass="odd">''depth'' ||(of an ''array'') the number of levels of ''nesting''.|| ||<rowclass="even">''derive'' ||create by juxtaposition as a combination of one or two existing ''arrays'' or ''functions'' with an ''operator''<<FootNote(''derive:'' {{{derived←∘.,/∘(⍳¨)}}})>>.|| ||<rowclass="odd">''dyadic'' ||accepting or requiring two ''arguments'' or ''operands'': left and right; having ''valence'' of two.|| ||<rowclass="even">''element'' ||(of an array) sub-array being a ''simple scalar'' at whatever ''depth''. The ''elements'' of a ''simple array'' are also its ''items''.|| ||<rowclass="odd">''empty'' ||(or null)(of an ''array'') having one or more dimensions of length zero.|| ||<rowclass="even">''enclose'' ||(of an array) convert into a ''scalar'' preserving all the original structure. An ''enclosed array'' can occupy a single position in another ''array''.|| ||<rowclass="odd">''function'' ||primitive, ''defined'', ''derived'' or system operation or mapping that takes zero, one (right) or two (left & right) ''array'' valued ''arguments'' and may return an ''array'' valued result.|| ||<rowclass="even">''item'' ||(of an array) sub-array, which may be ''enclosed'', occupying a single position in the outer structure of the ''array''. The ''items'' of a ''simple array'' are also its ''elements''.|| ||<rowclass="odd">''matrix'' ||(of an ''array'') having two dimensions.<<BR>>(of a ''function'') applying to ''matrices''.|| ||<rowclass="even">''monadic'' ||accepting or requiring one ''argument'' or ''operand''; on the right for a ''function''; on the left for an ''operator''; having ''valence'' of one.|| ||<rowclass="odd">''nested'' ||(of an ''array'') having one or more ''items'' or a ''prototype'' which is not a primitive ''scalar''.|| ||<rowclass="even">''niladic'' ||accepting no ''arguments''; having ''valence'' of zero.|| ||<rowclass="odd">''operand'' ||''argument'' to an ''operator''.|| ||<rowclass="even">''operator'' ||primitive or ''defined'' operation or mapping that takes one (left) or two (left & right) ''function'' or ''array'' valued ''arguments'' (''operands'') and ''derives'' a ''function''.|| ||<rowclass="odd">''pervasive'' ||(of a ''function'') applying equally to ''scalars'' at any ''depth''.|| ||<rowclass="even">''prototype'' ||(of an ''array'') the ''type'' of its first ''item''.|| ||<rowclass="odd">''rank'' ||(of an ''array'') number of dimensions.<<BR>>(of a ''function'') ''ranks'' of ''arguments'' to which it applies.|| ||<rowclass="even">''reduction'' ||application of a ''function'' between the ''items'' of its right ''argument'' thus ''reducing'' the ''rank'' by one.|| ||<rowclass="odd">''scalar'' ||(of an ''array'') having zero dimensions.<<BR>>(of a ''function'') applying to ''scalars''.<<BR>>(- extension) replication of a ''scalar'' ''argument'' to the ''shape'' of the other.|| ||<rowclass="even">''shape'' ||(of an ''array'') length of each dimension.|| ||<rowclass="odd">''simple'' ||(of a ''scalar'') a single primitive datum.<<BR>>(of an ''array'') composed entirely of primitive ''scalars''.|| ||<rowclass="even">''strand'' ||lexical juxtaposition of ''array'' valued names or expressions to form a larger, possibly ''nested'', ''array''<<FootNote(''strand:'' {{{stranded←0(1 2)('three' 'four')'five'}}})>>.|| ||<rowclass="odd">''type'' ||(of an ''array'') ''array'' of identical structure in which all numbers are zero and all characters are blanks.|| ||<rowclass="even">''valence'' ||degree or number of ''arguments'' or ''operands'' of an operation.|| ||<rowclass="odd">''vector'' ||(of an ''array'') having one dimension.<<BR>>(of a ''function'') applying to vectors.|| ||<rowclass="even">''workspace'' ||area of computer memory containing ''array''s and ''defined'' &/or ''derived'' operations or a file containing a preserved binary image of such.|| |
Line 18: | Line 37: |
== APL Glossary == ---- ||term ||description|| ||primitive||native to the language and referenced as a single character|| ||defined||created by lexical definition by direct assignment or in an editor|| ||derived||created by juxtaposition as a combination of more than one previously existing operation|| ||argument||object passed as parameter to an operation|| ||array||data valued object of zero or more dimensions|| ||function||primitive, defined or derived operation that takes zero, one or two array valued arguments and may return an array valued result|| ||operator||primitive or defined operation that takes one or two function or array valued arguments (operands) and derives a function result|| ||operand||more specific name for argument when applied to those of an operator|| ||niladic||accepting no arguments|| ||monadic||accepting or requiring one argument or operand|| ||monadic||(of a function) having its only argument on the right|| ||monadic||(of an operator) having its only operand on the left|| ||dyadic||accepting or requiring two arguments or operands|| ||dyadic||(of a function) having two arguments: left & right|| ||dyadic||(of an operator) having two operands: left & right|| ||ambivalent||capable of monadic or dyadic behaviour|| ||shape||length of each dimension of an array|| ||rank||(of an array) number of dimensions|| ||rank||(of a function) rank of arguments to which it applies|| ||scalar||pertaining to rank zero|| ||scalar||(of an array) having zero dimensions|| ||scalar||(of a function) applying to scalars|| ||vector||pertaining to rank one|| ||vector||(of an array) having one dimension|| ||vector||(of a function) applying to vectors|| ||matrix||pertaining to rank two|| ||matrix||(of an array) having two dimensions|| ||matrix||(of a function) applying to matrices|| ||simple||(of a scalar) a single character or number|| ||simple||(of an array) composed entirely of simple scalars|| ||nested||(of an array) having zero or more items which are not scalars|| ||strand||lexical juxtaposition of array valued names or expressions to form a larger, possibly nested, array|| |
-- PhilLast <<DateTime(2009-10-05T14:55:22Z)>> |
Glossary of APL terms
APL literature includes many terms whose meanings, though rigorous, differ slightly from elsewhere. Terms used but not defined here follow normal usage or are defined at FOLDOC1.
Term |
Description |
ambivalent |
(or nomadic2)(of a dyadic function) permitting its left argument to be elided. |
argument |
value or reference passed to a function or operator. |
array |
(or variable) data valued object of zero or more orthogonal dimensions in row-major order in which each item is a primitive scalar or another array. |
cell |
(of an array) sub-array whose dimensions are a suffix of those of the whole. The 2-cells of a 3D array are the planes whose dimensions are the numbers of rows and columns of the 3d array. |
define |
create by lexical assignment3 or association4 or in an editor5. |
depth |
(of an array) the number of levels of nesting. |
derive |
create by juxtaposition as a combination of one or two existing arrays or functions with an operator6. |
dyadic |
accepting or requiring two arguments or operands: left and right; having valence of two. |
element |
(of an array) sub-array being a simple scalar at whatever depth. The elements of a simple array are also its items. |
empty |
(or null)(of an array) having one or more dimensions of length zero. |
enclose |
(of an array) convert into a scalar preserving all the original structure. An enclosed array can occupy a single position in another array. |
function |
primitive, defined, derived or system operation or mapping that takes zero, one (right) or two (left & right) array valued arguments and may return an array valued result. |
item |
(of an array) sub-array, which may be enclosed, occupying a single position in the outer structure of the array. The items of a simple array are also its elements. |
matrix |
(of an array) having two dimensions. |
monadic |
accepting or requiring one argument or operand; on the right for a function; on the left for an operator; having valence of one. |
nested |
(of an array) having one or more items or a prototype which is not a primitive scalar. |
niladic |
accepting no arguments; having valence of zero. |
operand |
argument to an operator. |
operator |
primitive or defined operation or mapping that takes one (left) or two (left & right) function or array valued arguments (operands) and derives a function. |
pervasive |
(of a function) applying equally to scalars at any depth. |
prototype |
(of an array) the type of its first item. |
rank |
(of an array) number of dimensions. |
reduction |
application of a function between the items of its right argument thus reducing the rank by one. |
scalar |
(of an array) having zero dimensions. |
shape |
(of an array) length of each dimension. |
simple |
(of a scalar) a single primitive datum. |
strand |
lexical juxtaposition of array valued names or expressions to form a larger, possibly nested, array7. |
type |
(of an array) array of identical structure in which all numbers are zero and all characters are blanks. |
valence |
degree or number of arguments or operands of an operation. |
vector |
(of an array) having one dimension. |
workspace |
area of computer memory containing arrays and defined &/or derived operations or a file containing a preserved binary image of such. |
-- PhilLast 2009-10-05 14:55:22
FOLDOC: see The Free On-Line Dictionary Of Computing, Editor Denis Howe (1)
nomadic: see APLX concepts (2)
define by lexical assignment: assigned←{expression in terms of ⍺ and/or ⍵} (3)
define by lexical association: ⎕FX 'r←a associated w' 'r←expression in terms of a and/or w' (4)
define in an editor: ∇edited or )EDIT edited (5)
derive: derived←∘.,/∘(⍳¨) (6)
strand: stranded←0(1 2)('three' 'four')'five' (7)