Вы находитесь на странице: 1из 157
LISP I PROGRAMMER'S MANUAL March 1, 1960 Artificial Intelligence Group J. MeCarthy R. Brayton D, Bdwardo P. Fox L, Hodes D. Luckham K, Maling D. Park S$, Russell COMPUTATION CENTER and * RESEARCH LABORATORY OF ELECTRONICS Massachusetts Institute of Technology Cambridge, Massachusetts Preface LISP I is a programming system for the IBM 704 for comput- ing with symbolic expressions, It has been used for symbolic calculations in differential and integral calculus, electric circuit theory, mathematical logic, and artificial intelligence This manual contains a full description of the features of LISP I as of March 1960. The system has a central core based on a class of recursive functions of symbolic expressions which should be studied first and if possible used before the more peripheral features are tried. This core te described in Chap~ ters 2 and 3, and LISP programs can be written and run using this core provided someone familiar with the operational as- pects of the system i.e, loaders, tapes etc. 1s available. Later, the advanced features will be found useful although they are less neat, and less carefully described ‘This manual applies also to a version of LISP I being pre- pared for the IBM 709. Acknowledgements ‘This manual was mainly written by Fox on the basis of in- formation supplied by McCarthy and the authors of specific sections of LISP. The overall design of the system is the work of McCarthy. Certain ideas from Fortran, Gelernter's FLPL, Newell, Shaw and Simon's IPL, and N. Rochester were used ‘The APPLY operator was written by Russell starting from a preliminary LISP version by McCarthy. The print and read programs were written by McCarthy and Maling, respectively. The garbage collector was written by Edwards, ‘The parts of the system dealing with algebraic calcula- tions and floating-point numbers were written by N, Rochester, S. Goldberg and Edwards. The compiler was written by Brayton with the assistance of Park. ‘The flexo-system was written by Edwards and Luckham. All the listed authors contributed to the collection of functions available with the system. Suggestions on the contents of the manual were contributed by P. Abrahams, J. Slagle, and R. Silver, The secretarial work was done by Mrs, Marcia Webber,