LISP

LISP, in full list processing, a computer programming language developed about 1960 by John McCarthy at the Massachusetts Institute of Technology (MIT). LISP was founded on the mathematical theory of recursive functions (in which a function appears in its own definition). A LISP program is a function applied to data, rather than being a sequence of procedural steps as in FORTRAN and ALGOL. LISP uses a very simple notation in which operations and their operands are given in a parenthesized list. For example, (+ a (* b c)) stands for a + b*c. Although this appears awkward, the notation works well for computers. LISP also uses the list structure to represent data, and, because programs and data use the same structure, it is easy for a LISP program to operate on other programs as data.

 

LISP became a common language for artificial intelligence (AI) programming, partly owing to the confluence of LISP and AI work at MIT and partly because AI programs capable of “learning” could be written in LISP as self-modifying programs. LISP has evolved through numerous dialects, such as Scheme and Common LISP.

Recursive function

Recursive function, in logic and mathematics, a type of function or expression predicating some concept or property of one or more variables, which is specified by a procedure that yields values or instances of that function by repeatedly applying a given relation or routine operation to known values of the function. The theory of recursive functions was developed by the 20th-century Norwegian Thoralf Albert Skolem, a pioneer in metalogic, as a means of avoiding the so-called paradoxes of the infinite that arise in certain contexts when “all” is applied to functions that range over infinite classes; it does so by specifying the range of a function without any reference to infinite classes of entities.

Recursion can be intuitively illustrated by taking some familiar concept such as “human”—or the function “x is human.” Instead of defining this concept or function by its qualities and dispositions, one might say: “Adam and Eve are human; and any offspring of theirs is human; and any offspring of offspring . . . of their offspring is human.” Here two values of the function “x is human” are mentioned, and a relationship in which they stand to other entities is given. Through this relationship all things that are values of “x is human” are selected by a back reference, or “recursion,” by many steps, to Adam and Eve.

This recursiveness in a function or concept is closely related to the procedure known as mathematical induction and is mainly of importance in logic and mathematics. For example, “x is a formula of logical system L,” or “x is a natural number,” is frequently defined recursively. These functions are correlated with purely routine operations that may be repeatedly applied to given formulas or numbers, eventually relating them to certain listed values of the functions—e.g., to “P and Q” as one formula or to zero as one natural number—thus avoiding functions that range over infinite classes with the risk of incurring paradoxes.