Talk:Lisp (programming language)
Computing B‑class Mid‑importance | ||||||||||
|
Computer science B‑class High‑importance | |||||||||||||||||
|
|
||
Random "citations needed" are not
There are several places where someone has put the [citation needed] annotation, but it's just a language feature being described. For example, that symbols may appear in more than one place, but refer to the same object. I assert that example, for instance, needs no citation. Any of the language references will back that up (as will anyone who knows Lisp). I'd remove the silly ones myself, but I am not a Wikipedian and don't know how or what the protocol is. —Preceding unsigned comment added by 75.198.239.200 (talk) 08:24, 21 January 2009 (UTC)
- Hi, the protocol is to be WP:BOLD and just do it. --MarSch (talk) 17:13, 22 January 2009 (UTC)
License
Proprietary or not --Melab-1 21:12, 4 September 2008 (UTC)
- Some implementations of some Lisps are, some are not. --MarSch (talk) 17:17, 22 January 2009 (UTC)
Qi manual
The Qi manual pages 18-31 [1] has a good discussion of the history of Lisp in terms of creating an RS for discussing the why various things happened. jbolden1517Talk 15:40, 12 April 2009 (UTC)
- I took a look at this. Though I suppose it is an OK potted history for an introductory computer science book, it is not very good as history. Besides ignoring all work in early programming languages other than Lisp, it also makes the completely incorrect claim that it was Lisp machines which introduced windowing, computer mice, and personal computing. And simply on technical grounds -- it is self-published by someone who is not a published expert in the history of computer languages -- it doesn't meet WP:RS criteria. --macrakis (talk) 20:39, 12 April 2009 (UTC)
- OK thanks for taking the time to consider it. I found the windowing claims odd as well, but wasn't sure since smalltalk did have those (several years later) and those two communities were friendly.... But if that claim is wrong then no reason to endorse the history of LISP aspects. jbolden1517Talk 21:15, 12 April 2009 (UTC)
Influenced
The "influenced" list is getting rather long and vague. Some of these are not confirmed either in the article on the language referenced or in the timeline of programming languages. I think the list should be restricted to languages whose primary influence was Lisp where Lisp was specifically mentioned as a primary influence by the language designer(s). Otherwise, we may end up with a list containing nearly every post-Lisp language, which is hardly useful. Yworo (talk) 15:27, 2 August 2009 (UTC)
Well, there are a lot of languages that are influenced by Lisp - no wonder, since Lisp is 50 years old and has lots of dialects. ML was first implemented in Lisp, Perl mentions Lisp as an influence, Python mentions Lisp, Smalltalk mentions Lisp, Ruby mentions Lisp, Dylan mentions Lisp,Mathematica does not mention Lisp but is influenced by it (Wolfram implemented an earlier version, SMP, in Lisp), Rebol mentions Lisp, Qi is implemented in Lisp, Lua mentions Lisp, Javascript mentions Scheme, Forth mentions Lisp, Nu mentions Lisp, ...
There are lots of languages that are not or very little influenced by Lisp: C, C++, Ada, Oberon, Modula 2, Pascal, Visual Basic, C#, PHP, D, and so on...
Joswig (talk) 23:34, 6 December 2009 (UTC)
Symbolic expressions, form a Recursive Functions system
The main influence is the use of lists in Functional Languages. Other influential work in modern languages (mainly functional) is APL that influenced John Backus seminal FP and FFP, and P.Landing work. Milner also influenced with ML. Prolog also uses lists, but is based in predicate logic.
I think it is enough to say that Lisp is one of the more influential programming languages.
However we may say the same of Fortran, all programming languages with assignment an control structures.
Is this genealogy the main subject about programming languages? It is not.
Procedural languages have a bottle-neck, the assignment. See John Backus, Can Programming Be Liberated From Von Neuman Style?, CACM, 1978.
I think it is more important to mention how Lisp evolved to a language based on Lambda-calculus, due to the work on denotational semantics (in the beginning of lisp it was not based on lambda-calculus). Scheme is a good example of that, and how it can be used to implement many programming languages, knowing it's denotational semantics. It could be included an example implementation of the while language from its denotational semantics.
This is to me a more influential role of this language, than a simple genealogy. — Preceding unsigned comment added by Elias (talk • contribs) 04:58, 9 March 2011 (UTC)
Who uses Lisp?
I think it would be nice to see a section on industrial uses of lisp. I.e., companies, etc which use Lisp in internal or for-sale software. Scheme (programming language) has such a section. 174.99.120.127 (talk) 20:30, 22 August 2009 (UTC)
Object-Oriented Language?
The term "object-oriented" has been morphed over the years. Lisp did pioneer it. It used to be more about the issue of objects being data structures referred to by pointers and having identity (not just being value copied all over the place), like the C# ref types, and less about how they were programmed. In the old meaning of "object-oriented", even things like symbols were thought to be "object-oriented" things, I claim. It wasn't until later that programming style and encapsulation came to use that term (and inappropriately, I think, but that's something we can debate elsewhere--for here all that matters is that there was an older usage and that it changed). I object to the recent change by Macrakis (22 Aug 2009 22:07) removing this reference, but didn't want to get into an edit war by changing it back, so am just noting my concern here: Just because someone has repurposed the name doesn't mean Lisp should claim no credit here, at least not without highlighting the shift in terminology. Articles that use "object-oriented" in the original way are not making up a false reality. See my essay What's in a Name? -- Uses and Abuses of Lispy Terminology from Lisp Pointers, Volume VI, Number 1, January-March 1993, where I discussed the terminological shift as it was starting to gain a foothold. --Netsettler (talk) 16:58, 24 August 2009 (UTC)
Lisp based on lambda calculus?
In the second intro paragraph this article states that lisp was based on lambda calculus. I just read a transcript of a lecture McCarthy gave in which he said that he didn't understand lambda calc at the time and that lisp was not based on it.
2. Click on the link that says "LOVE" (Don't ask me why it says that)
3. Page 29
If the fact that it is a common misconception that lisp is based on lambda calc is not noted in the article, I think at the very least the statement that it WAS should be removed. — Preceding unsigned comment added by 198.29.2.254 (talk) 06:32, 18 September 2009 (UTC)
I think it is fair to say that Lisp is influenced by Lambda Calculus, but not based on Lambda Calculus.
Joswig (talk) 23:33, 6 December 2009 (UTC)
- Yes, I thought I had edited this article to make this plain, but looking again I think the edit I made was on Scheme (programming language), where I wrote:
- Alonzo Church's mathematical notation, the lambda calculus, has inspired Lisp's use of "lambda" as a keyword for introducing a procedure, as well as influencing the development of functional programming techniques involving the use of higher-order functions in Lisp. But early Lisps were not suitable expressions of the lambda calculus because of their treatment of free variables.
- The introduction of lexical scope resolved the problem by making an equivalence between some forms of lambda notation and their practical expression in a working programming language. Sussman and Steele showed that the new language could be used to elegantly derive all the imperative and declarative semantics of other programming languages including ALGOL and Fortran, and the dynamic scope of other Lisps, by using lambda expressions not as simple procedure instantiations but as "control structures and environment modifiers." They introduced continuation-passing style along with their first description of Scheme in the first of the Lambda Papers, and in subsequent papers they proceeded to demonstrate the raw power of this practical use of lambda calculus.
- Of course that's a very Scheme-oriented way of looking at things, and obviously there's more to modern Lisp than Scheme. However it does show that lambda calculus inspired or influenced Lisp, but that at least originally lisp was not based on it. Scheme can lay fair claim to being a dialect of Lisp that does implement a full-blooded form of lambda calculus, but that's another story. --TS 05:27, 7 December 2009 (UTC)
- I think this is not quite true: "But early Lisps were not suitable expressions of the lambda calculus because of their treatment of free variables." The earliest, a-list-based Lisps (e.g. Lisp 1.5) did support lexical scope, but at the cost of expensive variable lookup. Later lisps used implementation shortcuts that did not support full lexical scope (in the terminology of the time, they supported downwards but not upwards funargs). See Joel Moses, "The Function of FUNCTION in LISP, or Why the FUNARG Problem Should be Called the Environment Problem", M.I.T. Project MAC Memo AI-199/MAC-M-428 (June 1970) full text. --macrakis (talk) 15:30, 7 December 2009 (UTC)
- Thanks. I think you're right, and have for some time been vaguely aware that lexical scope was supported to a certain extent by Lisp 1.5 and even MACLisp. I'm pondering how to express that in the Scheme article. Ultimately this concern will be part of the article on the history of Scheme and (if we ever get around to writing one) an article on the broader history of Lisp. I think the key may be the level of consistency with which lexical scope is enforced in Scheme, in contrast to earlier Lisps. --TS 08:54, 8 December 2009 (UTC)
- I think this is not quite true: "But early Lisps were not suitable expressions of the lambda calculus because of their treatment of free variables." The earliest, a-list-based Lisps (e.g. Lisp 1.5) did support lexical scope, but at the cost of expensive variable lookup. Later lisps used implementation shortcuts that did not support full lexical scope (in the terminology of the time, they supported downwards but not upwards funargs). See Joel Moses, "The Function of FUNCTION in LISP, or Why the FUNARG Problem Should be Called the Environment Problem", M.I.T. Project MAC Memo AI-199/MAC-M-428 (June 1970) full text. --macrakis (talk) 15:30, 7 December 2009 (UTC)
I also though that I have written this part :)
I came here because the entry McCarthy Formalism has many mistakes and I propose to remove that article. It is about the relation between Recursive functions and symbolic expressions.
As I told there, since McCarthy wrote "Recursive Functions of Symbolic Expressions ...", he presented a system equivalent o recursive functions. There is a correspondence between Zero an Nil, Succ and Cons, U and Car,Cdr, etc. McCarthy said in an article about Lisp circa 1980 in the CACM that he did not understood lambda-calculus at that time. Otherwise he did not had the error of dynamic binding the only thing that he would change if he could make time back.
This mistake should be fixed in this article (Lisp (programming language)). Besides that choice of Lambda expressions by McCarthy. There is another reason that makes many people (I was one of those) who think Lisp is based in lambda calculus. Newer dialects, maybe Scheme is the more elegant in this aspect, are used to teach programing languages by implementing it's Denotational semantics. Friedman et-al Esentials of programming languages, is a very good book with that approach. They show how to implement fixed point combinators in that strict language. You can teach how to write the factorial function using fixed point combinators, as it is done in the lambda-calculus. But that is another thing. I just say that such approach reinforces the myth that lisp was based in lambda calculus.
Anyway, I think both of you agree with me to correct this. In general I think this article is fine. Although it is more biased to a practical programmer point of view. That may introduce some resistance to make this correction. — Preceding unsigned comment added by Elias (talk • contribs) 05:17, 14 February 2011 (UTC)
BEE Lisp, possible spamming
Beware that anon users (194.154.66.35, 212.5.80.7, 212.5.80.7 again, others?) are adding BEE Lisp to various places in the article, including "Dialects" and "External links".
BEE Lisp is a commercial Lisp compiler, hence my worry that it's spam. If it is indeed a notable dialect - my apologies. 75.45.97.117 (talk) 12:04, 27 January 2010 (UTC)
BEE Lisp is indeed a totally new commercial product (likely based upon a free GPL implementation) and does not relate to any relevant dialect. I believe it is spam and should be removed. —Preceding unsigned comment added by 76.238.143.15 (talk) 21:11, 24 June 2010 (UTC)
"somehow compatible" ?
At the bottom of the History section, where Common Lisp is first mentioned, shouldn't "somehow compatible" be changed to "somewhat compatible"? Peter Delmonte (talk) 06:24, 20 February 2010 (UTC)
Lisp dialects
Why is there no information about muLisp? Why is it ommitted? —Preceding unsigned comment added by 84.193.134.35 (talk) 10:59, 11 July 2010 (UTC)
- Probably just an oversight. I agree mulisp is historically interesting. muLisp is mentioned in three entries but not as a hyperlink. It deserves its own page if someone has information on it. Portable Standard Lisp (PSL) is not mentioned either, and should be. --Netsettler (talk) 16:28, 12 July 2010 (UTC)
History -> "at"?
The first line of the History section:
- "Lisp was invented by John McCarthy in 1958 while he was at the Massachusetts Institute of Technology (MIT)."
"At" is ambiguous – was McCarthy attending MIT, or teaching there? Looking briefly over his article, it seems that it was the latter, but as I don't actually know, I thought I'd bring it up here and let someone with a bit more knowledge on the subject fix it. 69.105.38.18 (talk) 02:37, 4 August 2010 (UTC)
- McCarthy was a professor at MIT. --FOo (talk) 21:09, 6 November 2010 (UTC)
Lisp is the second-oldest high-level language in use?
The article states Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older.
Is Lisp really in "widespread use" today? I mean, the modern dialects (eg, Common Lisp) are, but the Lisp dialects in use today are entirely different beasts than the Lisp that was created in 1958 - one could argue that they are derived languages, rather than dialects (or is C an ALGOL dialect?). Thats like saying that ALGOL is still in widespread use because ALGOL-derived languages are in widespread use today. —Preceding unsigned comment added by 89.101.42.6 (talk) 19:18, 10 September 2010 (UTC)
- The Lisp dialects used today are a rather closer descendant of the early ones than C is of Algol. There wasn't a single Lisp standard in the early days; rather, every university or research group that built a Lisp system had a slightly different one -- but all of these were mutually recognized as being "Lisp". It's probably worth noting that CL was considered an effort to find common ground among existing dialects, rather than to create a wholly new language. In any event, '60s Lisp is recognizable as a Lisp today, whereas Algol doesn't really look like C. --FOo (talk) 21:08, 6 November 2010 (UTC)
Spelling?
Is the number 1178 in section "Historically significant dialects", link "IEEE Scheme – IEEE standard, 1178–1990 (R1995)" meant to be a year? —Preceding unsigned comment added by 130.92.9.55 (talk) 12:36, 4 November 2010 (UTC)
- No, it really is 1178, not 1978. The number 1178 is part of the name of the standards document, the number after the dash denotes a specific revision (or the year, that revision was published). The IEEE Standards Association uses (mostly) numerical codes to identify the individual standards it publishes, like IEEE 754-2008 for the 2008 revision of the binary floating-point arithmetic standard, IEEE 1394 for FireWire, or IEEE 1541-2002 for the document defining standardized binary prefixes. Strictly speaking, I think, the number denotes the respective IEEE standards committee. — Tobias Bergemann (talk) 15:06, 4 November 2010 (UTC)
Asymptotic complexity of appending two lists.
I didn't want to change anything since all I know about lisp is what I've read so far in this article. But to me, it sounds fishy that the asymptotic complexity of appending two linked lists is O(n). — Preceding unsigned comment added by Enisbayramoglu (talk • contribs) 16:48, 8 September 2011 (UTC)
- O(n) where n is the total length of all but the last list being appended. Append is O(1) for the last list. It takes n cdr operations just to get to the end of a length-n list in the standard representation; also O(n) to copy it (which you have to do for 'append'). Of course, it's possible to use other representations (see CDR coding and unrolled linked lists), but they have worse performance characteristics when modifying lists (RPLACD). --Macrakis (talk) 17:30, 8 September 2011 (UTC)
Clojure
I have done some basic editing of the various mentions of this Lisp dialect. I am not an expert in Lisp and therefore do not claim to know what its importance and notability are amongst hardcore Lisp programmers, but the claims of it being "one of the three most important dialects of Lisp" seem a bit overblown and are in any case unreferenced, so I have deleted that part.
I have also chopped out a couple of superlatives and tried to give any mentions a more neutral tone. Even so, a few relevant references would be welcome--until then, this would only be an "important" dialect because Wikipedia says so. — Preceding unsigned comment added by 92.243.22.61 (talk) 10:46, 19 April 2012 (UTC)
Answer: http://wenshanren.org/?p=267 — Preceding unsigned comment added by 85.243.248.53 (talk) 09:01, 30 July 2013 (UTC)
- Blogs are not reliable sources. Number of downloads from github is also not the same as popularity or importance. Real sources are needed which makes such judgments or statements, not some misguided blog evaluation via web statistics. Yworo (talk) 22:30, 30 July 2013 (UTC)
Many Lisp-related pages mention Clojure, usually implying that it is as significant as Scheme and Common Lisp. I wonder if all these mentions were inserted by the implementer of Clojure? 87.113.146.102 (talk) 13:25, 17 May 2014 (UTC)
Formatting of {{
Lisp2}}
macro
The {{
Lisp2}}
macro is incompatible with the PDF generator. I would like to create a reference book about Lisp and some other topics to which this article links, but the Lisp2 macro is translated in the PDF generator to HTML markup (I have also entered this at the helpdesk).
When did "resurgence of interest" occur?
What does the word 'recently' mean in the following sentence?
- "After having declined somewhat in the 1990s, Lisp has recently experienced a resurgence of interest."
Should not the word 'recently' be bannished from Wikipedia?
Where is the 'recently-bot'?
Jack-cnv (talk) 14:18, 2 January 2013 (UTC)
Lots of confusion
The article does not distinguish reader macros and evaluation. The evaluator (eval
) takes an expression such as (QUOTE FOO)
and returns the atom FOO
; the evaluator never sees a thing that looks like 'foo
; that beast is not a s-expression. The s-expression reader (read)
makes use of reader macros that transform the character stream 'foo
into the s-expression (QUOTE FOO)
; sometime later eval
may look at that expression and compute its value. In some sense, reader macros are outside of the language; when a Lisp program examines an s-expression, it never sees 'foo
. Reader macros are examples of Moses' mud. Quasiquote is just a more powerful reader macro that makes an expression that builds the specified pattern.
The article also confuses the notion of operator and special form. Many languages treat +
as an operator and use a different mechanism for functions such as atan(y, x)
. Lisp doesn't do that; +
looks like an alphabetic character and it is used just like other (polymorphic) functions. A Lisp programmer can pass +
as a functional argument; a FORTRAN programmer cannot do that (he must define his own ADD function). Lisp has special forms; it doesn't have operators in the sense of +
.
Consequently, the article loses the clean notion of eval
. Glrx (talk) 04:02, 30 April 2013 (UTC)
Generational GC
I removed the claim that generational GC was originally developed for Lisp, it was in fact originally developed by David Ungar for a variant of Smalltalk-80 as evidenced here. Teslacuted (talk) 17:42, 5 August 2013 (UTC)
- The edit in question about garbage collection (computer science). The original statement appears to be accurate, so I'm tempted to restore it. Original GC, Baker's copying, and generational appear to be motivated by Lisp.
- David Ungar lists 1984 paper on generational garbage collection
- http://www.cs.washington.edu/education/courses/cse501/03wi/slides/slides.03-06.pdf mention generation and cites to Ungar
- http://c2.com/cgi/wiki?GenerationalGarbageCollection suggests Baker understood generation issue in 1983
- Lieberman and Hewitt's paper, A Real-Time Garbage Collector Based on the Lifetimes of Objects, (LISP) is before 1984. http://web.media.mit.edu/~lieber/Lieberary/GC/Realtime/Realtime.html
- also published in CACM, Volume 26, Issue 6, June 1983, Pages 419-429, doi 10.1145/358141.358147, http://dl.acm.org/citation.cfm?id=358147
- http://www.cs.utexas.edu/users/mckinley/395Tmm-2003/talks/LH83.pdf cites to CACM June 1983
- I don't know if L&H paper cites to Ungar.
- Glrx (talk) 19:34, 26 August 2013 (UTC)
Ungar himself attributes Moon here. My mistake. Teslacuted (talk) 22:29, 28 August 2013 (UTC)
- If it's any consolation, the original claim was not sourced. Glrx (talk) 23:12, 28 August 2013 (UTC)
Restored clearer factorial definition
I've reverted Marcodx it (talk · contribs) change of the basic factorial implementation to the previous version that used a simple 'if' statement. There's nothing at the if sentence that makes it less functional;the = comparison expression is more direct than a zerop predicate, and both the base and recursive cases are easier to read than guarded clauses. Remember that this page is intended for people that doesn't know Lisp yet. Diego Moya (talk) 21:09, 5 August 2013 (UTC)
- The example as it is now is not clear to people who don't know Lisp -- or even to someone who studied it decades ago and has forgotten it.211.225.33.104 (talk) 07:05, 16 June 2014 (UTC)
Lacking good examples
Hi,
I'm a seasoned programmer and not very stupid. I understand lambda calculus and most simple procedural languages (C is my stock in trade). I used to program in FORTH a lot. I would have hoped that reading this article I could get a feel for the related LISP language. Sadly this article is deficient.
To put it simply (+ 1 2 3 4) evaluates 10. OK. Not as good as FORTH's reverse polish 1 2 3 4 + + + evaluates 10 --- but where do I go from here? Nothing in this article enables me to define (foo 1 2 3 4)! maybe I could perhaps use lambda but it's not clear how. Where does defun come from? In FORTH I can define a function: : FOO * + ; and 1 2 3 FOO would evaluate 7. I cannot read this article and do the same in LISP (I think).
To be any use this article *must* include a clear example of function definition. I make no apology for the fact that function definition may not be in the LISP paradigm. Tell me how to define (foo x y) or forget it.
kind regards, MikeMichaelbarclay (talk) 22:44, 17 October 2013 (UTC)
((God knows why the tildas mail me at michael.j.barclay@gmail.com I'm a real person and I'm trying to help))
- The article gives many clear examples of function definition. Your function foo would be defined as (defun foo (a b c d) (+ a b c d)). In some dialects of Lisp it could also be defined as something like (setq foo (lambda (a b c d) (+ a b c d))) -- see Lisp-1_vs._Lisp-2#The_function_namespace.
- Re "evaluates 10..."; we don't say that the expression evaluates its value, but rather that Lisp/the Lisp system/the interpreter/the language system evaluates an expression and returns a value, e.g., "Lisp evaluates (+ 1 2) as 3" or "(+ 1 2) evaluates to 3".
- Re "not as good as FORTH's ...", this article describes Lisp, it doesn't evaluate it as better or worse than other languages.
- Re "where does defun come from": (defun f (a) b...) is a shorthand for (place-in-function-definition-slot-of-symbol 'f #'(lambda (a) b...)). The function definition slot may be on the symbol's property list (in early Lisps), in a special slot attached to the symbol (in most modern Lisps), or in the value slot (Lisp-1's with a single function namespace). --Macrakis (talk) 23:22, 17 October 2013 (UTC)
Undialects in infobox
I deem the following links in the "dialects" slot being not dialects:
- Racket, is a Scheme implementation,
- T, is a Scheme implementation.
Rursus dixit. (mbork3!) 11:19, 10 January 2014 (UTC)
If Then Else
The article claimed: The ubiquitous if-then-else structure, now taken for granted as an essential element of any programming language, was invented by McCarthy for use in Lisp, where it saw its first appearance in a more general form (the cond structure). It was inherited by ALGOL, which popularized it. No quotation os given. If/Then/Else appears in Algol58 - as defined by the middle of 1958. At that time, Lisp had cond, if it existed. -- Zz (talk) 18:23, 4 June 2014 (UTC)
- We see two references now. One is from Paul Graham and neither an independenrt nor an authoritative source about the history of Algol respectively Lisp. The other, by John McCarthy, even refutes the claim: I invented conditional expressions in connection with a set of chess legal move routines I wrote in FORTRAN for the IBM 704 at M.I.T. during 1957-58. This program did not use list processing. The IF statement provided in FORTRAN 1 and FORTRAN 2 was very awkward to use [...] This led to the invention of the true conditional expression which evaluates only one of N1 and N2 according to whether M is true or false and to a desire for a programming language that would allow its use. A paper defining conditional expressions and proposing their use in Algol was sent to the Communications of the ACM but was arbitrarily demoted to a letter to the editor, because it was very short. For one, it does not say If/Then/Else here, as claimed. Secondly, the development began in a Fortran context and it has been passed on directly to Algol58. So, Algol cannot have it from Lisp. -- Zz (talk) 19:16, 4 June 2014 (UTC)
- These accounts do not seem inconsistent. McCarthy, while writing a Fortran program, adopted a COND or if-then-else structural paradigm; presumably he implemented it with Fortran's IF and GOTO.
- McCarthy, while developing Lisp, creates the COND language form to realize the M/N1/N2.
- McCarthy writes a paper proposing that Algol use if-then-else.
- Glrx (talk) 19:11, 15 July 2014 (UTC)
Second Oldest Programming Language
The article claims: Originally specified in 1958, Lisp is the second-oldest high-level programming language in widespread use today; only Fortran is older (by one year). Today's Lisp and Fortran dialects are at least as different to the originals as, for instance, C or Pascal are to Algol. The Algol family is so common that people care for fine details within, but for a claim of that strength, I would either expect a quote from a reputable source (in so far as it is held as a common view) or a working definition of language family. -- Zz (talk) 18:31, 4 June 2014 (UTC)
- The reference given relates John McCarthy's personal views. Something more general is needed, preferably one that addresses the points above. -- Zz (talk) 19:25, 4 June 2014 (UTC)
- I disagree. Today's Lisp and Fortran dialects have been extended, but they are still very similar. Some old programs will still run under new systems. That is not the case with feeding a C or Pascal program to an Algol compiler.
- McCarthy is a significant authority, so his views are WP:DUE. Glrx (talk) 19:03, 15 July 2014 (UTC)
- Unless something is a commonly held view, it is a general Wikipedia guideline to mark it as the opinion of the author. I see McCarthy as pretty relevant, but not the only view possible. If you think it is a majority view, find a source stating that.
- The first sentence in the article states: Lisp (historically, LISP) is a family of computer programming languages[.]. So, it is an article about a family of languages - as opposed to what you claim. And I dare you to show me relevant Lisp 1.5 programs that run on current implementations. Without need, the second sentence changes the topic from the family of languages to one language and claims it to be second oldest. But things have happened in the meantime. There is no single Lisp anymore, and what we have now is different from the first Lisps. And if we go by language families, the Algol family is slightly older even. I propose to turn the second sentence into a statement that the Algol and the Lisp family of languages tie for second place in age. -- Zz (talk) 18:19, 16 July 2014 (UTC)
- Actually the mainline Lisp dialects like Common Lisp (or Emacs Lisp) can relatively easy run old Lisp. They still have much of the core of the Lisp 1.5 language. Here is an example to load Lisp code from 1960 (Wang algorithm for propositional calculus): http://www.informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/wang.html Joswig (talk) 23:52, 19 July 2014 (UTC)
The 1+ example is bogus
At least with regard to Common Lisp. The C x++ operator has a side effect but the Lisp (1+ x) is exactly equivalent to (+ x 1). incf would be a closer parallel to the C ++ operator.