5 ms·
> 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 practic
by 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.
- doall 9y ago>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' This part is about the status of LISP I and not what Graham is referring to. Did you look at the article by Graham? http://www.paulgraham.com/rootsoflisp.html http://www.paulgraham.com/rootsoflisp.html He is talking about the core of LISP that he found in the 1960 paper that is pure. >Basically the paper is more a collections of ideas around various ways to describe parts of LISP There is clearly a gem in the paper that is viewed as a pure LISP.
- kbp 9y agoI think the argument comes because your initial statement was "The original LISP is pure functional," which isn't true. McCarthy's original idea of Lisp was not purely functional and the original Lisp implementation was not purely functional. I think that it is true to say that the first real description of a purely functional language came up in the context of work on Lisp, but what you and Paul Graham seem to be doing is saying that that pure Lisp is the real Lisp and what was called Lisp before that (in theory and implementation) was still just a lead-up to his "discovery" of Lisp.
- deleted 9y ago[deleted]
- doall 9y ago>I think the argument comes because your initial statement was "The original LISP is pure functional," which isn't true. Since LISP I is the real first implementation, I don't mean the original LISP in the sense of the first LISP, but rather "a core of LISP defined in the original paper". I called that the original LISP. I have explained this view many times so far. >McCarthy's original idea of Lisp was not purely functional At least McCarthy had some pureness in his mind for LISP and it is not black or white argument. >the original Lisp implementation was not purely functional. True. > but what you and Paul Graham seem to be doing is saying that that pure Lisp is the real Lisp and what was called Lisp before that (in theory and implementation) This is not my intention.
- kbp 9y ago> At least McCarthy had some pureness in his mind for LISP and it is not black or white argument. In his 1958 paper describing what would become Lisp, literally the first example of the use of car he gives is destructively modifying a cons, ie, RPLACA. In his own words, which I quoted earlier and you didn't respond to: "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." It seems black and white to me. > > but what you and Paul Graham seem to be doing is saying that that pure Lisp is the real Lisp and what was called Lisp before that (in theory and implementation) > This is not my intention. Could you explain how your intention differs? McCarthy's original conception of Lisp was not purely functional (according to McCarthy himself as well as the historical evidence), and the original implementation was not purely functional, so how would the purely functional subset described in a later paper be "the original LISP" if you aren't denying the earlier work?
- deleted 9y ago[deleted]