next up previous
Next: 3.1 Functional Arguments Up: LISP 1.5 Programmer's Manual Previous: 2.6 Programming for the

3. EXTENSION OF THE LISP LANGUAGE

Section I of this manual presented a purely formal mathematical system that we shall call pure LISP. The elements of this formal system are the following.

1. A set of symbols called S-expressions.

2. A functional notation called M-expressions.

3. A formal mapping of M-expressions into S-expressions.

4. A universal function (written as an M-expression) for interpreting the application of any function written as an S-expression to its arguments.

Section II introduced the LISP Programming System. The basis of the LISP Programming System is the interpreter, or evalquote and its components. A LISP program in fact consists of pairs of arguments for evalquote which are interpreted in sequence.

In this section we shall introduce a number of extensions of elementary LISP. These extensions of elementary LISP are of two sorts. The first includes prepositional connectives and functions with functions as arguments, and they are also of a mathematical nature, the second is peculiar to the LISP Programming System on the IBM 7090 computer.

In all cases, additions to the LISP Programming System are made to conform to the functional syntax of LISP even though they are not functions. For example, the command to print an S-expression on the output tape is called print. Syntactically, print is a function of one argument. It may be used in composition with other functions, and will be evaluated in the usual manner, with the inside of the composition being evaluated first Its effect is to print its argument on the output tape (or on-line). It is a function only in the trivial sense that its value happens to be its argument, thus making it an identity function.

Commands to effect an action such as the operation of input-output, or the defining functions define and cset discussed in Chapter II, will be called pseudo-functions. It is characteristic of the LISP system that all functions including psuedo-functions must have values. In some cases the value is trivial and may be ignored.

This Chapter is concerned with several extensions of the LISP language that are in the system.



Subsections
next up previous
Next: 3.1 Functional Arguments Up: LISP 1.5 Programmer's Manual Previous: 2.6 Programming for the