Vocabulary/Glossary

From J Wiki
Jump to: navigation, search

Back to: Vocabulary    This is the target page for numerous links in the NuVoc suite. For a brief list, see: Absolutely Essential Terms.

Glossary of J terms

Addon a vendor- or author-maintained library of J applications and utilities downloaded on request by the J user.
Adverb An adverb modifies the word or phrase to its left to produce a derived entity which is usually a verb (though it can be any of the four primary parts of speech). More...
Agree The arguments of a dyadic verb agree if the frames are identical, or one is a prefix of the other. More...
Ambivalent Of a verb, able to be called either as a monad or as a dyad.
Anonymous Having no name. Said of the result of an execution, which has no name unless it is used in an assignment.
Argument A noun value that is supplied to a verb when the verb is executed.
Array A noun comprising atoms arranged along 1 or more axes. Each atom is identified by its index list. J arrays are rectangular, meaning that all 1-cells contain an identical number of 0-cells, and all 2-cells contain an identical number of 1-cells, and so on. The atoms of an array must all have the same type and precision More...
Array of [xxx] A noun comprising cells, each of which is an [xxx], arranged along 0 or more axes. Each cell is identified by its index list. More...
ASCII An interpretation of bytes according to the ASCII standard.
Assembly The final phase of the execution of a verb, in which the results of the execution on individual cells are brought to a common shape by adding framing fill and then assembled into an array whose frame with respect to result cells is the frame of the verb. More...
Assignment Assignment attaches a value to a name, which defines the name. A defined name will be replaced by the attached value when the name is executed. Assignments use the copulas =. and =:.
Atom Any single number, character, box, or symbol. An atom is a noun with rank 0 . Also called a scalar. More...
Atomic Representation A box whose contents serve to define a value. Every value, whatever its part of speech, has an atomic representation which is a noun.
Axis One of the dimensions along which the atoms of an array are arranged. The atoms of every noun are arranged along zero or more axes where each axis has a corresponding length and each unique list of nonnegative integers in which each integer is less than the length of the corresponding axis designates a unique atom of the noun. More...
Bivalent See ambivalent.
Body (of an explicit entity) a sequence of sentences that are executed one by one when the entity is invoked.
Boolean A numeric precision whose value restricted to the values 0 and 1. Comparisons and tests, such as =, <, and e., produce Boolean values. In accordance with the Iverson convention, these Boolean values are identical to the numeric values 0 and 1 and can participate in numeric expressions.
Box Any noun can be enclosed in a box to create a new noun which is an atom whose type and precision are 'boxed'. The noun so enclosed is the contents of the box. The contents of the box can be recovered by opening the box. Boxes can be arranged in an array even if their contents differ in shape or type, to produce a heterogeneous array. More...
Boxed A type and precision of noun. A noun is boxed if its atoms are boxes. More...
Boxing Enclosing a noun in a box to produce an atom with contents. More...
Boxing Level For an unboxed or empty noun, 0; otherwise, one more than the highest boxing level of the contents of the atoms.
Boxing Path A list of boxes used to designate a box or array of boxes inside a boxed noun b. The first atom of the boxing path p contains the index list of an atom of b; this atom is selected and opened; the next atom of p selects an atom of the contents; and so on until p is exhausted. The atom or array remaining after all atoms of p have been used is the subtree of b designated by p.
Brick An array of rank 3. A three-dimensional array. More...
Brick of [***] An array whose _3-cells are [***]; as in 'brick of 3-item lists'.
Byte A character precision with 256 different 8-bit values.
Call by name (of a word in a sentence during execution) Referring to an operand by using its name. Named verbs, adverbs, and conjunctions are passed by name, except for the special names u and v.
Call by reference (of a word in a sentence during execution) Referring to an operand by pointing anonymously to its value. In J, all words that are not passed by name are passed by reference.
Carriage Return The byte: ASCII 13. Named CR
Cell A subarray of a noun consisting of all the atoms of the noun whose index lists have a given prefix. For nonnegative k, each k-cell of a noun whose shape is s has the shape ((- k <. #s) {. s) and together they can be assembled to reconstruct the noun. For negative k, the k-cells are defined to be the (0 >. k + #s)-cells.


0-cells are atoms, 1-cells are lists, and 2-cells are tables. _1-cells of a table are lists, _2-cells are atoms. More...

Character A type of noun representing one or more characters. Character precisions include byte and unicode.
Collection See assembly.
Common Frame (when executing a dyadic verb) the shorter of the argument frames. More...
Comparison Tolerance The system setting that specifies the maximum relative difference between two values that will be considered tolerantly equal. Set by 9!:19, read by 9!:18; can be temporarily overridden by !.t.
Complex A numeric precision that stores the real and imaginary parts of complex numbers in IEEE-754 double-precision floating-point format
Compound Verb A tacit definition formed from primitive verbs using a modifier such as Atop (@)
Conjunction A conjunction modifies the words or phrases to its left and right to produce a derived entity which is usually a verb, though it can be any of the four primary parts of speech. More...
Constant A word that represents a number, a character in quotes (e.g. 'a'), or a list of either
Contents (of a box) the noun that was enclosed in the box. The contents can be recovered by opening the box. More...
Control Word A primitive name, inflected with a period (.), that controls program flow. A control word is a sentence delimiter and a sentence in its own right. More...
Copula One of the parts of speech, signifying an assignment of a value to a name. The copulas are =. and =: .
Current Locale See implied locale.
Defined (of a name) having a place in a namespace as a result of being the target of an assignment
Definition J code which, when executed, creates an entity.
Derived Entity The result of executing an adverb or conjunction. Usually a verb. If the part of speech of a derived entity is known, it may be called, for example, a derived verb. More...
Derived Value A synonym of Derived Entity.
Dyad (dyadic) A verb when executed with both left and right arguments (x- and y-arguments). For a dyadic execution to be valid, the verb must have a dyadic #Valence#valence defined. More...
Element A noun, a candidate item of an array
Empty (of an array) Having no atoms. An empty array has 0 in its shape - but still it may have items (e.g. 4 0 3$0) More...

(of an argument of a verb) Having no cells; having a 0 in the frame of the argument.

Entity A noun, verb, conjunction, or adverb. An entity is either a word in a sentence or a derived entity resulting from execution. Entities participate in execution and are used as values in assignment.
Execution The process of replacing a verb and its arguments on the execution stack with the noun result from applying the verb to those arguments; or of converting a fragment into a derived entity in accordance with the definition of the fragment, and replacing the fragment on the execution stack by a single synthetic word referring to the derived entity. Execution of a sentence proceeds generally right to left and ends with a single result which may be any type of entity.
Execution Stack The set of words of a sentence that have been examined by parsing in its search for an executable fragment, as modified by the replacement performed by execution.
Explicit Definition The J code, starting with an execution of the Explicit conjunction (:), that creates an explicit entity
Explicit Entity An entity that has a body whose sentences are executed one by one. While the body is being executed, the entity has its own private namespace. Explicit entities are created by the : conjunction with noun operands (i. e. m : n), or by its synonym define. The arguments/operands to an explicit entity are referred to by the special names x, y, u, v, m, and n, which are defined in the private namespace of the entity when the body starts execution.
Explicit Locale The locale identifier appended to a simple name to create an explicit locative. More...
Explicit Locative A locative of the form simplename_explicitlocale_ indicating that the search for simplename will start in the locale explicitlocale and follow its search path. More...
Extended Integer A numeric precision that stores integers of arbitrary size with complete precision.
Fill Atoms appended to a noun to extend the shape of the noun to a required shape, especially when the noun must be extended because it is being made a cell in an array whose cells are bigger than the noun.
Fill Atom The atomic value used for each atom of fill.
Fill Cell A cell of fills, used as an argument to a verb when the verb's frame contains a 0.
Floating Point A numeric precision that stores numbers in IEEE-754 double-precision floating-point format.
Foreign a system function or platform service, e.g. date, time or I/O, called via the primitive: Foreign (!:)
Fragment 2 or 3 words on the execution stack in a context that makes them executable.
Frame The k-frame of a noun, or frame of a noun with respect to k-cells, is the shape of the noun with the last r items removed, where r is the rank of a k-cell of the noun. When a noun is viewed as an array of k-cells, the frame with respect to k-cells is the shape of the array of k-cells.


(of an argument of a verb) the r-frame of the argument, where r is the rank of the verb for that argument. More...

(of an execution of a verb) the argument frame for a monad, or the longer argument frame for a dyad. Also called the result frame of the execution. More...

Framing Fill A fill added when the results from applying a verb on its argument cells are being joined into an array. Framing fills are always 0, ' ', a:, or the empty symbol, depending on the type of the result. More...
Fret An index that is the start or end of an interval.
Functional Programming A method of writing programs that describes only the operations to be performed on the inputs to the programs, without the use of temporary variables to store intermediate results. J's tacit programs are an example of functional programming. Aficionados of functional programming consider it to express algorithms more purely than a procedural language; as the expert J programmer Randy MacDonald has said, "If you're not programming functionally, you're programming dysfunctionally".
Gerund The atomic representation of a verb. A gerund, which is a noun, can be used in places where a verb value cannot be, for example as an argument to a verb or in a list of verb values.
Global (of a name) defined in the locale z and thereby accessible as a simple name by any verb. The J Dictionary uses the word global to mean 'not private', a broader meaning which corresponds to the term public in NuVoc.
Identity Element The identity element i of a dyadic verb u is the value that satisfies i = i u y and i = y u i for all y in the domain of u . Also called the neutral.
Identity Function A monad that produces an identity element of a shape appropriate for a single item of its y argument. If if is the identity function for f, then ({.y) f if y equals {.y for all y. More...
Implied Locale The locale that will be used at a given time for public assignment and name searches of simple names. More...
Index In an array, an integer indicating position along an axis. The index of the first position along an axis is 0 . More...
Index List A list of integers with the same length as the shape of a noun, designating an atom of the noun by giving its position along each axis. More...
Inflection Period (.) or colon (:) characters appended to the end of a name or ASCII graphic character to produce a new and independent primitive. Or, the process of adding such characters.
Infinity A floating point numeric value representing infinity. Can be positive or negative.
Infix A sequence of consecutive items of a noun.
Integer A numeric precision that stores integers at machine precision, either 32 or 64 bits per number.
Interval A sequence of consecutive indexes or cells.
Item A _1-cell of a noun. An array is a list of its items, which are cells of rank 1 less than the rank of the array. An atom has one item, itself. The items of a list are atoms; the items of a table are lists. More...
Iverson Bracket A mathematical notation, where [P] equals 0 if the predicate P is false, 1 if P is true.
Iverson Convention The use of the integers 0 and 1 to represent false and true.
Leaf A box whose contents are unboxed or empty. A leaf may itself be part or all of the contents of another box.
Line A substring delimited by linefeeds. More...
Linefeed The byte: ASCII 10. Named LF
List when used without qualification: An array of rank 1. A one-dimensional array.
List of [xxx] An array whose items are [xxx]; as in 'list of 3-atom lists'.
Literal A synonym of byte.
Local See private.
Locale A public namespace. Each public name is defined in a locale. A locale is identified by a locale name which is a character string not containing an underscore. More...
Locative A name giving both a simple name and a locale in which the search for the name will begin. A locative is either an explicit locative or an object locative.
Matrix see table.
Modifier An adverb or conjunction. Creates a derived entity (typically a verb) according to its operands. More...
Monad (monadic) A verb when executed with no left argument (x-argument). For a monadic execution to be valid, the verb must have a monadic #Valence#valence defined. More...
Name A word that begins with a letter and contains letters, numerals, and underscores. A name can be the target of assignment. A name is either a simple name or a locative. More...
Namespace Either a named locale or a private namespace associated with a running explicit entity. More...
Neutral A synonym of identity element.
Newline A synonym of Linefeed (the J word: LF)
Noun One of the four primary parts of speech. An atom or array of atoms. Nouns hold the data that verbs operate on. More...
Number A numeric atom, typically (part of) a constant
Numeric A type of noun representing numbers. Numeric precisions include Boolean, integer, extended integer, rational, floating point, and complex. The format of numeric constants is defined here.
Object Locale The value of the object names in an object locative. The first object name is evaluated in the current namespace: its value initializes the object locale, and each subsequent object name (if any) is evaluated in the then-current object locale with its value replacing the object locale. The value of the object locale after all names have been evaluated is the locale in which the search for the simple name of the locative begins. More...
Object Locative A locative of the form simplename__objname[s] indicating that the search for simplename will start in the object locale given by the value of the objname[s] and will follow its search path. More...
Object Name As part of an object locative, a name, preceded by double-underscore (__) and running to the next double-underscore or the end of the locative. More...
Obverse By default the inverse of a verb, or a user-chosen verb attached to it via Assign Obverse (:.)
Open (as description) see unboxed.

(as primitive) returns the contents of a box. More...

Opening The act of recovering the contents of a box. More...
Operand A noun or verb value that is supplied to a modifier when the modifier is executed.
Outerval The indexes remaining after deletion of an interval.
Outfix The remainder of an array after an infix is removed.
Parsing The right-to-left search for suitable patterns in a sentence. When one is found, the subset of it that constitutes an executable fragment is executed and replaced by the result of the execution.
Part of Speech One of the seven categories into which words are classified; or, the word or entity so classified. Every word has a part of speech: for primitives, the part of speech is color-coded in the NuVoc portal; for names, the part of speech is that of the value assigned to the name. The parts of speech are: noun, verb, adverb, conjunction, punctuation, copula, control word. More...
Partition A selection of (possibly noncontiguous) items of an array, brought together as the items of a new array to be operated on by a verb.
Path (of locale names) see search path.

(within boxed noun) see boxing path.

Phrase Part of a sentence that evaluates to an entity.
Precision An attribute of a noun, indicating the range of data values that can be represented. More...
Prefix An infix that includes the first item.
Primary Part of Speech A subset of the parts of speech viz. noun, verb, conjunction, and adverb
Primitive A word whose meaning is assigned by the J language. More...
Private (of a name) assigned in the namespace of an explicit entity and accessible only within the explicit entity in which it was assigned. More...
Pronoun A term used for a name to distinguish it from its noun value. This distinction is seldom observed in J documentation.
Proverb A term used for a name to distinguish it from its verb value. This distinction is seldom observed in J documentation.
Public (of a name) assigned in a locale and accessible from any locale via a locative. More...
Punctuation A part of speech. Punctuation is not executed but it affects the execution of other words. Punctuation in J comprises ', (, ), NB., and control words.
Rank (of a noun) the number of axes along which the atoms of the noun are arranged; the number of items in the shape More....


(of a verb) the highest rank of the noun arguments that the verb can operate on directly. More...

Rational A numeric precision that stores rational real numbers of arbitrary size with complete precision.
Recursive (of a verb) making a call to itself during its execution.
Result (of a fragment) the value produced by executing the fragment; the fragment is replaced on the execution stack by a synthetic word representing the result.


(of a sentence) the result of the last fragment executed in the sentence.

(of an entity) the result of the last sentence executed in the entity.

Scalar An atom, a term used together with vector and matrix.
Script A text file containing J code, usually in the form of sentences.
Search Path (of a locale loc) the list of the names of locales that will be searched to find the definition of a name originally sought but not found in loc. More...
Selector An atom used as the specification of one or more items of an array, e.g. by From ({)
Sentence An entire executable line. More...
Session A window of the chosen J IDE (called "Term" in JQt or "IJX" in j602) which shows the results of running J in immediate mode.
Shape The list of the lengths of the axes of a noun. More...
Simple Name A list of letters, numbers, and underscores, beginning with a letter, not containing two consecutive underscores, and not ending with an underscore unless it contains only one underscore, used to refer to an entity. More...
Singleton An atom or a one-atom array.
Sparse Array An array in which only values different from the sparse element are stored.
Sparse Element An atomic value associated with a sparse array. Usually 0.
Special Combination A phrase recognised by J as suitable for efficient execution via special code
Starting Locale The locale actually specified in a locative - which may actually not be the locale containing the entity designated. See also Search Path. More...
String See character.
Subarray The result of selecting an interval or outerval from each axis of an array.
Suffix An infix that includes the last item.
Surplus Frame (when executing a dyadic verb) execution, the part of the argument frame that is not in the common frame. More...
Suspension When debugging is enabled, any error (including a stop) causes execution to pause, with the state of all executing entities available for review, modification, and restart of execution. During the pause in execution, each executing entity is said to be suspended.
Symbol A type and precision. A symbol represents a list of characters that has been put into J's symbol table.
Table An array of rank 2. A two-dimensional array. More...
Table of [***] An array whose _2-cells are [***]; as in 'table of 3-item lists'.
Tacit Definition The definition of a tacit verb, consisting of a train of words
Tacit Verb A verb that executes without its own private namespace and refers to its arguments implicitly.
Tolerance See tolerant comparison.
Tolerant Comparison Numeric comparison, in which at least one of the values is an inexact type, that considers the values to be equal if the difference between them is less than the absolute tolerance. A system setting, the comparison tolerance, is used to calculate the absolute tolerance. For dyadic comparisons, the absolute tolerance is the comparison tolerance multiplied by the larger of the magnitudes of the two comparands. For monadic comparisons (where one comparand is assumed to be 0), the absolute tolerance is equal to the comparison tolerance. More...
Train A sequence of words that when executed produces a non-noun result, typically a verb
Type An attribute of a noun: numeric, character (also called string), boxed, or symbol. Each class comprises one or more precisions. As used in the J Dictionary, see precision. More...
Unbox See open (verb).
Unboxed Having atoms that are not boxes. More...
Undefined Name A valid name that has yet to be assigned a value.
Unicode A character precision with 65536 different values (the Frame-0 Unicode characters).
Unicode4 A character precision with 1052672 different values (the Unicode characters).
UTF-8 A method of representing unicode character values as a sequence of bytes according to the UTF-8 standard.
Valence (of a verb definition) tells the number of noun arguments the definition can accept: monadic if 1, dyadic if 2, dual-valence if either 1 or 2. More...


(of the execution of a verb) an indication of the number of arguments supplied to the verb: monadic if 1, dyadic if 2.

Value An entity that can be attached to a name through assignment. When a name is encountered during execution of a sentence, it is replaced by its value. A value may be a noun, verb, adverb, or conjunction; for example, assigning a verb value to a name produces a defined verb. More...
Vector See list.
Verb One of the four primary parts of speech. A verb operates on the noun to its right (and its left, if a noun is to its left) to produce a noun result. More...
Verb Definition The definition of a verb, often (by implication) an explicit definition
Verb Fill Fill added by a verb during processing of a cell when the verb operates on cells that are smaller than the rank of the verb; contrasted with framing fill. The fit conjunction !.f can often be used to specify the fill atom f to be used for verb fill.
Whitespace A string of one or more non-printing bytes, either Space or TAB characters, which J accepts as syntactically equivalent to Space. Unlike C/C++ does not include CR or LF
Word A sequence of characters in a sentence, recognized as a lexical unit. A word is either a name, a primitive, a constant (which may be a number or a character or a list of either), or a synthetic word used to refer to the result of an execution. More...