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.
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).
Start Interlisp with the EXEC command @INTERLISP:LISP. Return to EXEC with the Interlisp command LOGOUT() or Ctrl-C.
(s-expression)function(arguments) (A (B (C] ⇒ (A (B (C))), (A [B (C (D] E) ⇒ (A (B (C (D))) E)(* comment). Comments will be included when functions are saved to a file, and displayed with the function definition by getd. Prettyprint displays all comments as “** COMMENT **”. (A 'B C) ⇒ (A (QUOTE B) C)| Ctrl-C | Return to EXEC. Interlisp can be resumed with CONTINUE. |
| Ctrl-D | Return to Interlisp top-level. |
| Ctrl-N | Call Interlisp editor on the expression being read, when the read is completed. |
| Ctrl-O | Clear output buffer. |
| Ctrl-U | Print “##” and clear the read line buffer, i.e., erase the entire line up to the last carriage-return. |
| Ctrl-V | Escape the following control character that would otherwise interrupt the input process. |
| Ctrl-W | Erase the last expression typed in the read input buffer, echoing “\\”. (Will back up to previous lines.) |
| Backspace | Erase the last character typed in, echoing a “\” and the erased character. |
For an example of basic Interlisp usage (defining a function, debugging, and saving it to a file), see Interlisp Example Session on TWENEX.
For an introduction to Interlisp's list structure oriented editor, see The Interlisp Editor.
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])
)