Table of Contents

TWENEX Interlisp Tutorial

Interlisp-10, for Interactive Lisp, is an implementation of the Lisp programming language developed from 1966 at Bolt, Beranek and Newman (BBN) for TENEX, BBN's in-house PDP-10 operating system, and later DEC's TOPS-20 operating systems. From 1970, development of Interlisp was transferred to Xerox Palo Alto Research Center.

The language became popular with Stanford University AI researchers and at other principally US West-Coast institutions.

Interlisp Features

At the time of its creation, what distinguished Interlisp from most other programming languages and systems was that it attempted to provide the user with a complete set of tools for making it possible for him or her to accomplish the desired task as easily as possible. Listed below are a brief summary of some of the more interesting features, and complete details are found in the Interlisp Reference Manual1).

In and Out

Start Interlisp with the EXEC command @INTERLISP:LISP. Return to EXEC with the Interlisp command LOGOUT() or Ctrl-C.

Interlisp Tips

Interlisp Control Characters

Ctrl-CReturn to EXEC. Interlisp can be resumed with CONTINUE.
Ctrl-DReturn to Interlisp top-level.
Ctrl-NCall Interlisp editor on the expression being read, when the read is completed.
Ctrl-OClear output buffer.
Ctrl-UPrint “##” and clear the read line buffer, i.e., erase the entire line up to the last carriage-return.
Ctrl-VEscape the following control character that would otherwise interrupt the input process.
Ctrl-WErase the last expression typed in the read input buffer, echoing “\\”. (Will back up to previous lines.)
BackspaceErase the last character typed in, echoing a “\” and the erased character.

Example Session

For an example of basic Interlisp usage (defining a function, debugging, and saving it to a file), see Interlisp Example Session on TWENEX.

Interlisp Editor

For an introduction to Interlisp's list structure oriented editor, see The Interlisp Editor.

Hello, World!

The example session referenced above defines a recursive factorial function. Below is one way to define a Hello, World! function in Interlisp. After typing the definition, run the function by typing HELLO().

(DEFINEQ
(HELLO
  [LAMBDA NIL                                   (* edited:
                                                " 6-Oct-2024 23:")
    (PRIN1 "Hello, World!")                     (* Print string without
                                                quotation marks, then
                                                CR-LF on standard
                                                output)
    (TERPRI])
)
1)
Warren Teitelman. Interlisp Reference Manual. (1978). Accessed: October 6, 2024. [Online]. Available: https://www.softwarepreservation.org/projects/LISP/interlisp/Interlisp-Oct_1978.pdf
2)
Clark Weissman. Lisp 1.5 Primer. (1967). Accessed: October 3, 2024. [Online]. Available: http://www.softwarepreservation.org/projects/LISP/book/Weismann_LISP1.5_Primer_1967.pdf