Differences between revisions 9 and 10
Revision 9 as of 2009-08-03 09:56:53
Size: 5347
Editor: KaiJaeger
Comment: table improved to make it survive a GUI editor session
Revision 10 as of 2009-08-11 14:50:14
Size: 3440
Editor: anonymous
Comment: tidied & condensed
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Glossary Of Apl Terms =
Line 3: Line 2:
== Glossary of APL terms ==
APL literature includes many terms whose meanings, though rigorous, differ slightly from elsewhere. Terms used here but not defined follow normal usage or are defined at [[http://foldoc.org/|FOLDOC]].
||<rowclass="odd">'''Term'''||'''Description'''||
||ambivalent||(or [[http://www.microapl.co.uk/APL/apl_concepts_chapter6.html|nomadic]])(of a ''dyadic'' ''function'') permitting its left argument to be elided.||
||<rowclass="odd">array||data valued object of zero or more orthogonal dimensions in row-major order in which each item is a primitive ''scalar'' or another ''array''.||
||define||create by lexical assignment or association or in an editor.||
||<rowclass="odd">depth||(of an ''array'') the number of levels of ''nesting''.||
||derive||create by juxtaposition as a combination of more than one previously existing ''array'', ''function'' or ''operator''.||
||<rowclass="odd">dyadic||accepting or requiring two arguments or operands: left and right; having ''valence'' of two.||
||empty||(of an ''array'') having one or more dimensions of length zero.||
||<rowclass="odd">function||primitive, ''defined'' or ''derived'' operation or mapping that takes zero, one (right) or two (left & right) ''array'' valued arguments and may return an ''array'' valued result.||
||matrix||(of a ''function'') applying to matrices.||
||<rowclass="odd">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''.||
||<rowclass="odd">niladic||accepting no arguments; having ''valence'' of zero.||
||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">prototype||(of an ''array'') the ''type'' of its first item.||
||rank||(of an ''array'') number of dimensions.<<BR>>(of a ''function'') ''ranks'' of arguments to which it applies.||
||<rowclass="odd">reduction||application of a ''function'' between the items of its right argument.||
||scalar||(of a ''function'') applying to ''scalars''.||
||<rowclass="odd">shape||(of an ''array'') length of each dimension.||
||simple||(of a ''scalar'') a single primitive datum.<<BR>>(of an ''array'') composed entirely of primitive ''scalars''.||
||<rowclass="odd">strand||lexical juxtaposition of ''array'' valued names or expressions to form a larger, possibly ''nested'', ''array''.||
||type||(of an ''array'') ''array'' of identical structure in which all numbers are zero and all characters are blanks.||
||<rowclass="odd">valence||degree or number of arguments or operands of an operation.||
||vector||(of a ''function'') applying to vectors.||
||<rowclass="odd">workspace||area of computer memory containing ''array''s and ''defined'' &/or ''derived'' operations or a file containing a preserved binary image of such.||
Line 4: Line 30:
↓↓↓↓ Discussion moved to bottom ↓↓↓↓
----
 APL literature includes many terms describing the language whose meanings are rigorously defined but might have slightly different meanings in APL than elsewhere either by being more or less specific. This list is not exhaustive but is intended to cover the most important of them.
----
== APL Glossary ==
||<rowclass="odd"> Term ||Description||
||primitive||native to the language and referenced as a single character||
||<rowclass="odd">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||
||<rowclass="odd">argument||object passed as parameter to an operation||
||array||data valued object of zero or more orthogonal dimensions in which each item is a number, a character or another array||
||<rowclass="odd">variable||named array||
||function||primitive, defined or derived operation that takes zero, one or two array valued arguments and may return an array valued result||
||<rowclass="odd">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||
||<rowclass="odd">valence||degree or number of arguments or operands of an operation||
||niladic||accepting no arguments; having valence zero||
||<rowclass="odd">monadic||accepting or requiring one argument or operand; having valence one||
|| ||(of a function) having its only argument on the right||
||<rowclass="odd"> ||(of an operator) having its only operand on the left||
||dyadic||accepting or requiring two arguments or operands; having valence two||
||<rowclass="odd"> ||(of a function) having two arguments: left & right||
|| ||(of an operator) having two operands: left & right||
||<rowclass="odd">ambivalent||capable of monadic or dyadic behaviour||
||nomadic||used by some APLs as a synonym for 'ambivalent'||
||<rowclass="odd">shape||(of an array) length of each dimension||
||type||(of an array) array of identical structure in which all numbers are zero and all characters are blanks||
||<rowclass="odd">prototype||(of an array) the type of its first item||
||empty||(of an array) having one or more dimensions of length zero||
||<rowclass="odd">rank||(of an array) number of dimensions||
|| ||(of a function) ranks of arguments to which it applies||
||<rowclass="odd">scalar||(of an array) having zero dimensions||
|| ||(of a function) applying to scalars||
||<rowclass="odd">vector||(of an array) having one dimension||
|| ||(of a function) applying to vectors||
||<rowclass="odd">matrix||(of an array) having two dimensions||
|| ||(of a function) applying to matrices||
||<rowclass="odd">simple||(of a scalar) a single character or number||
|| ||(of an array) composed entirely of simple scalars||
||<rowclass="odd">nested||(of an array) having one or more items or a prototype which is not a simple scalar||
||depth||(of an array) the number of levels of nesting where an item or prototype is other than a simple scalar||
||<rowclass="odd">strand||lexical juxtaposition of array valued names or expressions to form a larger, possibly nested, array||
||workspace||area of computer memory containing arrays and defined &/or derived operations or a file containing a preserved binary image of such||
||<rowclass="odd">noun||alternative term for array||
||verb||alternative term for function||
||<rowclass="odd">adverb||alternative term for monadic operator||
||conjunction||alternative term for dyadic operator||
----
== Discussion ==
Please have a glance at:
 http://en.wikipedia.org/wiki/APL_(programming_language)#APL_Glossary
=== intro ===
The wikipedia table has kilobytes of criticism on its Discussion page, is inconsistent, ungrammatical and should be replaced or removed.

The following (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.

Please criticise it (the table above) 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)>>
=== Suggestion ===
 0. Could you perhaps include the term 'valence' when discussing function signatures?
  . done! - see above but please, Ajay, feel free to add or amend at will.
 0. The WIKIPEDIA reference mentions 'nomadic': have I missed something all these years?
  . so does this - see above; used by APLX for ambivalent.
/* the easiest way to edit this is to cut and paste it to notepad, switch off word wrap, replace all '<rowclass="odd">' with nothing, do the edit, put '<>' or something on every odd line of the table, replace every '<>' with '<rowclass="odd">', cut and paste it back. */ -- PhilLast <<DateTime(2009-08-11T14:50:14Z)>>

Glossary of APL terms

APL literature includes many terms whose meanings, though rigorous, differ slightly from elsewhere. Terms used here but not defined follow normal usage or are defined at FOLDOC.

Term

Description

ambivalent

(or nomadic)(of a dyadic function) permitting its left argument to be elided.

array

data valued object of zero or more orthogonal dimensions in row-major order in which each item is a primitive scalar or another array.

define

create by lexical assignment or association or in an editor.

depth

(of an array) the number of levels of nesting.

derive

create by juxtaposition as a combination of more than one previously existing array, function or operator.

dyadic

accepting or requiring two arguments or operands: left and right; having valence of two.

empty

(of an array) having one or more dimensions of length zero.

function

primitive, defined or derived operation or mapping that takes zero, one (right) or two (left & right) array valued arguments and may return an array valued result.

matrix

(of a function) applying to matrices.

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.

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.

prototype

(of an array) the type of its first item.

rank

(of an array) number of dimensions.
(of a function) ranks of arguments to which it applies.

reduction

application of a function between the items of its right argument.

scalar

(of a function) applying to scalars.

shape

(of an array) length of each dimension.

simple

(of a scalar) a single primitive datum.
(of an array) composed entirely of primitive scalars.

strand

lexical juxtaposition of array valued names or expressions to form a larger, possibly nested, array.

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 a function) applying to vectors.

workspace

area of computer memory containing arrays and defined &/or derived operations or a file containing a preserved binary image of such.


-- PhilLast 2009-08-11 14:50:14


CategoryAboutApl

GlossaryOfAplTerms (last edited 2015-02-24 10:48:36 by anonymous)