Xref: utzoo comp.lang.lisp:4553 comp.lang.scheme:2048 Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!sun-barr!lll-winken!uunet!mcsun!ukc!edcastle!aiai!jeff From: jeff@aiai.ed.ac.uk (Jeff Dalton) Newsgroups: comp.lang.lisp,comp.lang.scheme Subject: Re: Scheme as an Algol-like, not Lisp-like, language Message-ID: <4258@skye.ed.ac.uk> Date: 4 Mar 91 15:42:08 GMT References: <1991Feb15.191259.20090@aero.org> <1991Feb15.223520.17267@Think.COM> <1991Feb18.191549.7575@aero.org> <1991Feb19.030719.1137@Think.COM> <4234@skye.ed.ac.uk> jinx@zurich.ai.mit.edu writes: > Now, *you* are underestimating me a bit. The serious point I was making > is that a Lisp is historically a symbolic List Processing language, > while, except for the survival of 'cons', 'car', and 'cdr', Scheme is > more of something in the Algol 60 tradition, with a superficially > Lisp-like syntax. > >Well, what makes a Lisp? Let me suggest a few requirements. >1. List processing. >2. Programs that look like data. >3. Objects with unbounded extent and automatic storage management. >4. EVAL (making use of 2). >5. Powerful syntactic extension facilities that make use of 2. >6. Call by value. >7. Imperative constructs. >8. Functional style encouraged, or at least not discouraged. >9. Latent types. >10. Generic arithmetic, with integers not restricted to the word size >of the machine. >11. Interactive development enviroments. > >You are right to claim that Scheme is not a Lisp because of its lack >of 4 and 5, but I'd say he is _wrong_ to claim Scheme is not a Lisp because it doesn't have 4 and 5. As you note later in your article: >- There are dialects of Lisp out there that don't satisfy some of >those requirements, yet no one thinks they are not Lisp. The idea that we judge whether something is of a certain kind by saying it must have _all_ properties in a list is philosophically dubious to say the least [references omitted]. This has long been recognized explicitly by the AI community and at least implicitly by the Lisp community. That's why the Algol-syntax language used with Reduce was called RLISP, for example. RLISP didn't have all of the typical Lisp properties, but it did have enough of them. [Exactly what counts as "enough" may depend on many things.] Remember too that some people used to (and maybe still do) write Lisp in a syntax based on the Meta-language described in the Lisp 1.5 book. If the Lisp 2 project has been a success, dual-notation Lisp (such as RLISP / PSL) might have become the norm, and our idea of what Lisp is typically like might be very different. -- jd