Appendix 2: Collected Terminology

In this book, the words "data", "function", "argument" and "expression"
are used with the meanings usual in programming.

Certain other words are used in this book with meanings given below,
in a sequence such that the explanation of each word depends only on words
previously explained.

VALUE

Anything which can be produced by evaluating
an expression is
said to be a value. Every value is a data value or a function.

NOUN

a data value

VERB

a function which computes nouns from nouns.

MONAD

a verb which takes a single argument.

DYAD

a verb which takes two arguments. Every verb is a monad or a dyad.

AMBIVALENT

An expression is said to be ambivalent when it denotes
either a monad or a dyad (depending on
whether one or two arguments are supplied).

OPERATOR

a function which takes, as its argument(s), nouns or verbs,
and produces as its result, a noun or verb or operator.
Every J function is a verb or an operator.

ADVERB

an operator which takes a single argument.

CONJUNCTION

an operator which takes two arguments. Every operator is an
adverb or a conjunction.

BIDENT

a sequence of two expressions for which the J grammar provides an
interpretation as a single function.

TRIDENT

a sequence of
three expressions for which the J grammar provides an interpretation as
a single function.

TRAIN

a sequence of two or more expressions
for which the J grammar provides an interpretation as
a single function.

HOOK

a verb defined as a sequence of two verbs, that is, a bident.

FORK

a verb defined as a sequence of three verbs, that is, a trident.

EXPLICIT

a function is said to be explicitly defined,
or just explicit,
when defined by an
expression containing argument variables for which values
are to be substituted.

TACIT

a function is said to be tacitly defined,
or just tacit, when defined without
using argument variables.
Every J function is either built-in or explicit or tacit.

ARRAY

a noun, that is, a data value, consisting of a number of simpler values
arranged on rectangular coordinates, or axes. Every noun is an array,
with zero or more axes.

DIMENSION

(of an array) the length of an axis

SHAPE

(of an array) the list of its dimensions

SCALAR

a noun with no dimensions. The shape of a scalar is an empty list.

RANK

(of a noun) the number of its dimensions, that is, the length of its shape.

BOX

A scalar of a special type, such that its value
can represent any array.

CELL

The list of dimensions of any array can be
arbitrarily partitioned into leading dimensions followed by
trailing dimensions. The original array is thus described as an array of cells,
where each cell has only the trailing dimensions. The leading dimensions are called a
frame for those cells.

FRAME

See Cell.

RANK

(of a verb) The natural, or intrinsic,
rank for its argument(s).
With an argument of any rank higher than its intrinsic rank,
the verb is applied separately to each intrinsic-rank cell of the argument.
A monad has one rank, a dyad has two (one each for left and right arguments)
and hence an ambivalent verb has three.