4 ms·
So the definition of "LISP" matters. Your definition of LISP seems to be the actual implementation, such as LISP 1. But as many historians say, LISP was invente
by doall 9y ago
So the definition of "LISP" matters. Your definition of LISP seems to be the actual implementation, such as LISP 1. But as many historians say, LISP was invented in 1958, which the implementation did not even exist. From this fact, LISP does not only mean the actual implementation, but also the idea and the idea is written in the 1960 paper, which represents a pure LISP. The idea is the most important thing of LISP and that is why McCarthy is called the Father of LISP and Steve Russell is not. To further say, there may not exist a pure implementation of LISP in 1960, but there exists the idea of pure LISP in those days that is shown in the 1960 paper.
- kbp 9y agoMy point was that I have never seen any evidence that such an idea was ever called Lisp. Even the 1960 paper differentiates between the functional programming theory and the language Lisp being used to explore that theory. If we're bundling all the theory leading up to Lisp under the "Lisp" name, then why stop at McCarthy? Church's lambda calculus was definitely purely functional. As for McCarthy's original conception of Lisp, in 1979[1] he wrote: LISP also allows sequential programs written with assignment statements and go tos. Compared to the mathematically elegant recursive function definition features, the ``program feature'' looks like a hasty afterthought. This is not quite correct; the idea of having sequential programs in LISP antedates that of having recursive function definition. 1: http://www-formal.stanford.edu/jmc/history/lisp/node4.html http://www-formal.stanford.edu/jmc/history/lisp/node4.html
- doall 9y ago>My point was that I have never seen any evidence that such an idea was ever called Lisp. I'm not the only one who has this view. From Paul Graham, http://www.paulgraham.com/rootsoflisp.html http://www.paulgraham.com/rootsoflisp.html "There were already models of computation, of course - most notably the Turing Machine. But Turing Machine programs are not very edifying to read. If you want a language for describing algorithms, you might want something more abstract, and that was one of McCarthy's aims in defining Lisp. The language he defined in 1960 was missing a lot. It has no side-effects, no sequential execution (which is useful only with side effects anyway), no practical numbers, and dynamic scope. But these limitations can be remedied with surprisingly little additional code. If you understand McCarthy's eval you understand more than just a stage in the history of languages. These ideas are still the semantic core of Lisp today. So studying McCarthy's original paper shows us, in a sense, what Lisp really is. It' s not something that McCarthy designed so much as something he discovered. It's not intrinsically a language for AI or for rapid prototyping, or any other task at that level. It's what you get (or one thing you get) when you try to axiomatize computation." Since the word LISP is not mathematically defined and has different meanings in different contexts, there are different views of what LISP is and I understand your confusion.
- deleted 9y ago[deleted]
- kazinator 9y agoWhat are car and cdr called in the pure theory, and why didn't they just stick with those names?
- lispm 9y ago> The language he defined in 1960 was missing a lot. It has no side-effects, no sequential execution (which is useful only with side effects anyway), no practical numbers, and dynamic scope. The language LISP I in 1960 had numbers, side-effects and sequential execution. http://www.mirrorservice.org/sites/www.bitsavers.org/pdf/mit/rle_lisp/LISP_I_Programmers_Manual_Mar60.pdf http://www.mirrorservice.org/sites/www.bitsavers.org/pdf/mit... Lisp I programmer's manual from 1st March 1960. It had PROG -> sequential execution. chapter 4.5 It had floating point numbers -> chapter 4.4. It had side-effects -> SET, SETQ. chapter 4.5
- doall 9y ago>The language LISP I in 1960 had numbers, side-effects and sequential execution. Yes, true. But in this context Paul Graham was talking about the language defined in the 1960 paper below and not LISP I. "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I" http://www-formal.stanford.edu/jmc/recursive.html http://www-formal.stanford.edu/jmc/recursive.html
- lispm 9y agoReally? That has numbers, too. There are several examples with numbers in the paper. In the paper McCarthy mentions also: '6. A ``program feature'' allows programs containing assignment and go to statements in the style of ALGOL.' '7. Computation with floating point numbers is possible in the system' Basically the paper is more a collections of ideas around various ways to describe parts of LISP. The actual LISP language is described somewhere else. See the LISP I Programmer's manual linked earlier, which gives a complete overview of the state of the LISP language in 1960.
- kbp 9y agoI found an even older reference to impure Lisp; doubt I'm going to do better than this: McCarthy's 1958 paper "An Algebraic Language for the Manipulation of Symbolic Expressions"[0], immediately after introducing our good friend car, says: "For example, statement beginning car (i) = causes a quantity to be computed and stored in the address part of register leaving the rest of the register unchanged." 0: http://www.softwarepreservation.org/projects/LISP/MIT/AIM-001.pdf http://www.softwarepreservation.org/projects/LISP/MIT/AIM-00...