3 ms·
I'm not talking about the implementation of LISP 1 by Steve Russell, but the original idea of LISP invented by John McCarthy that shows its purity, and that is
by doall 9y ago
I'm not talking about the implementation of LISP 1 by Steve Russell, but the original idea of LISP invented by John McCarthy that shows its purity, and that is before the implementation by Russell.
- kazinator 9y agoThe paper you cited is dated 1960 and bears McCarthy's name. The Lisp 1 Programmer's Manual is dated 1960 and ... bears McCarthy's name. The paper you cited has a section titled The LISP Programming System which says: "The LISP programming system is a system for using the IBM 704 computer to compute with symbolic information in the form of S-expressions." The Programmer's Manual's Preface begins: "LISP 1 is a programming system for the IBM 704 for computing with symbolic expressions." Looks like they are about exactly the same thing to me: an implementation for a specific computer (IBM 704), described in the same year by the same author, with an a nearly identical sentence in the intro.
- doall 9y agoJohn McCarthy is not the one who implemented LISP 1 in IBM 704, but it is Steve Russell. McCarthy invented the idea of LISP in 1958 https://www-cs.stanford.edu/memoriam/professor-john-mccarthy https://www-cs.stanford.edu/memoriam/professor-john-mccarthy that is before the 1960 paper and the LISP 1 manual. In the 1960 paper, he showed that LISP can be implemented in just few primitives that showed its purity of LISP. Of course you can develop a non pure version of LISP which is more practical.
- lispm 9y agoThe original idea of McCarthy was to have a list processing language on the IBM 704. http://jmc.stanford.edu/articles/lisp/lisp.pdf http://jmc.stanford.edu/articles/lisp/lisp.pdf Lisp was always as much as an idea as a real proramming language and both were developed together. Lisp was developed as a practical tool for AI research, especially for his AI research.
- doall 9y agoIn the paper you shown "One mathematical consideration that influenced LISP was to express programs as applicative expressions built up from variables and constants using functions. I considered it important to make these expressions obey the usual mathematical laws allowing replacement of expressions by expressions giving the same value. The motive was to allow proofs of properties of programs using ordinary mathematical methods. This is only possible to the extent that side-effects can be avoided. Unfortunately, side-effects are often a great convenience when computational efficiency is important, and “functions” with side-effects are present in LISP." Reading above, in his original idea, he clearly had the idea of mathematical pureness for LISP, but for practical reasons the real implementation became one with side-effects.