4 ms·
> If it doesn't have nil that is also false and the empty list, it is not a Lisp. Scheme is generally considered a Lisp.
by osteele 8y ago
> If it doesn't have nil that is also false and the empty list, it is not a Lisp.
Scheme is generally considered a Lisp.
- kazinator 8y ago{by whom} Not by me. I'm a skilled Lisp programmer, yet Scheme isn't usable to me a the rudimentary coding level using the core language. There are stumbling blocks at every turn against straightforward Lisp coding. How can it be a Lisp? I can't even rely on Scheme to evaluate the function arguments left to right. Many forms have an "undefined" return value; in Lisp, everything returns a defined value, as a fundamental tenet! Remember Alan Perlis: "Lisp programmers know the value of everything, but the cost of nothing." Well, Scheme programmers do not in fact know the value of everything; it is often undefined! Might Scheme not be a dialect of C, in fact? The expression f(i++, i++) is directly translatable from C to Scheme, undefinedness of behavior intact! "Lisp" has to do with the little design details, not superficial resemblance. Calling every language with parentheses a Lisp is like calling every web browser "Netscape". Chrome is Google Netscape, Firefox is Mozilla Netscape; Explorer is Microsoft Netscape. How can they all not be "Netscape"? They run Javascript, process HTML and CSS, fetch URLs and render content. Also, MS-DOS and Windows are Unix! Proof: their filesystem design has a directory structure in which "." means this directory and ".." means parent. There is a "cd" command in the command interpreter, and slash is accepted as a path separator such that the leading slash indicates an absolute path. Piping between processes is done with |. Gee, how can DOS and Windows not be Unix? Superficial resemblances mean that we can dilute any name we want, as thinly as we want, to the point that it means nothing.
- sigzero 8y ago"Part of the culture of Schemers is to broadly interpret the term "Lisp." It's part of the culture of Common Lispers to wonder what is going on in the culture of Schemers. :-)"
- kazinator 8y agoThat's right. Since I'm not in the culture of Schemers, I don't care what they consider Lisp. Every Tom, Dick and Harry clamors for his demented, non-Lisp programming language to be considered Lisp in order to create the appearance of a relationship to the associated allure and mystique. Ruby? Why, that's "MatzLisp".
- osteele 8y agoMe (GP): Scheme is generally considered a Lisp. Me (now, after reading P and other responses): I was wrong (or at least half-wrong) about this being generally accepted. I was not aware that I've been in a "Scheme is a Lisp" bubble. EDIT: When I was working in Lisp (early to mid nineties), ANSI Common Lisp was relatively recent, and many of my co-workers[1] — a couple of whom in fact were members of the X3J13 committee — had come from working in and implementing a variety of earlier dialects. Maybe that has something to do with it. [2] looks like a good summary of the current divide. [3] and [4] represent only one side of it. [1] http://amigos.rdsathene.org/other/prefix-dylan/book.annotated/acknowledgments.html http://amigos.rdsathene.org/other/prefix-dylan/book.annotate... [2] http://wiki.c2.com/?IsSchemeLisp http://wiki.c2.com/?IsSchemeLisp [3] https://en.wikipedia.org/wiki/Lisp_(programming_language)?wprov=sfti1 https://en.wikipedia.org/wiki/Lisp_(programming_language)?wp... [4] https://en.wikipedia.org/wiki/Scheme_(programming_language)?wprov=sfti1 https://en.wikipedia.org/wiki/Scheme_(programming_language)?...
- kazinator 8y agoRegarding that C2 page. My view isn't that Lisp is a coveted brand name, but that it should have a reasonably precise meaning. Abusing "Lisp" has created confusion. Here is one problem: people come across some language which are called some kind of Lisp. They have some sort of experience that didn't sit well with them. Then, because of a human reasoning process called "guilt by association", they attribute the bad experience to everything that is called "Lisp". It must all be the same, right? It's called Lisp! The result is that if I make a language that is some kind of Lisp, I can't just present it to the users to enjoy; I have to work at dislodging their preconceived notions about what that language is, based on what they believe "Lisp" to be from some prior experiences. Please leave the "Lisp" word for those of who earnestly implement something that has the important attributes of the original, so that over time, the meaning of the word will be narrowed and sharpened, regaining some of its discerning power. It should be the case that if someone uses a language that is some kind of Lisp, they should be able to program in it straight away, if they have experience with any other language that is some kind of Lisp. They should be able to define an elementary function, such as a recursive Fibonacci or whatever, without having to study the reference manual of the different Lisp. If someone comes to me saying they learned some kind of Lisp, but then they are confused by nil in my Lisp, that is unfortunate. I put a bona fide classic Lisp feature into my Lisp, which baffles someone who thinks they had previously studied some kind of "Lisp"! How stupid is that? Unhelpful, to say the least, and confusing. What is the take-away message for that person? How can it possibly be anything other than: "Lisp is fragmented! If I learn something completely rudimentary under one Lisp, like how Boolean conditions work, I have to un-learn and re-learn it differently under something else, also calling itself Lisp! This is like Linux distros, only 100X worse! Phooey!"
- osteele 8y ago> "Lisp" has to do with the little design details, not superficial resemblance. Would you consider LISP 1.5, MacLISP, InterLISP, etc. to be Lisps? They differ on different design details than Scheme does, but they differ significantly. Related: does Lisp these days or in your community just mean Common Lisp?
- lispm 8y agoCommon Lisp mostly superseded Lisp 1.5 and Maclisp. Interlisp went away - Xerox included Common Lisp into Interlisp-D and later sold the product to a tiny vendor, renaming the product to Medley. Most Interlisp users were switching to Common Lisp - including Xerox. Xerox even was a driving force behind the Common Lisp Object System (CLOS) and its Meta-Object Protocol. Xerox paid for much of the research that went into it. Parts of CLOS were based on ideas from LOOPS for Interlisp-D. The first actual CLOS implementation was called Portable Common Loops (PCL) and was actually developed largely by/at Xerox PARC. Xerox PARC also developed a bunch of research software in Common Lisp. I would count Emacs Lisp, ISLisp, and some similar languages as mainline Lisps. Scheme is now called Scheme. Racket was renamed from DrScheme (IIRC), to avoid being directly associated with Scheme - since it is now its own language.
- kazinator 8y ago> Racket was renamed from DrScheme (IIRC), to avoid being directly associated with Scheme. See: a laudably reasonable behavior.
- deleted 8y ago[deleted]
- soegaard 8y agohttp://racket-lang.org/new-name.html http://racket-lang.org/new-name.html
- pmarin 8y agoRacket was PLT Scheme. DRSheme was It's IDE now called DRRacket