| 1. | A mnemonic one- or two-character spelling for primitives. 
 
 | 
| 2. | No order-of-execution hierarchy among functions. 
 
 | 
| 3. | The systematic use of ambivalent functions that, 
like the minus sign in arithmetic, can denote one function when 
used with two arguments (subtraction in the case 
of -), and another when used with one argument 
(negation in the case of -). 
 
 | 
| 4. | The adoption of terms from English grammar that better fit 
the grammar of J than do the terms commonly used in mathematics 
and in programming languages.  Thus, a function such as addition is 
also called a verb (because it performs an action), 
and an entity that modifies a verb (not available in most 
programming languages) is accordingly called an adverb. 
 
 | 
| 5. | The systematic use of adverbs and conjunctions to modify verbs, 
so as to provide a rich set of operations based upon a rather 
small set of verbs.  For example, +/a denotes the sum 
over a list a , */a denotes the product 
over a , a */ b is the 
multiplication table of a and b . 
 
 | 
| 6. | The treatment of vectors, matrices, and other arrays 
as single entities. 
 
 | 
| 7. | The use of functional or tacit programming that 
requires no explicit mention of the arguments of a function (program) 
being defined, and the use of assignment to assign names to functions 
(as in sum=:+/ and mean=:sum % #). 
 
 | 
The following sections are records of actual