

Is Scheme Lisp? - gnosis
http://c2.com/cgi/wiki?IsSchemeLisp

======
jimwise
I think the fact that we're now asking this question shows how successful the
Scheme and Common Lisp efforts have been.

Thirty years ago, there were dozens of variants of LISP out there, from the
mainstream (MacLISP, InterLISP, Lisp Machine LISP) to the esoteric (it seems
like every major CS department in the world had a local LISP dialect, much as
many of them would soon have local Unix dialects).

Many of these dialects had differences between them -- from the
everything's-a-message architecture of Carl Hewitt's ACTORS (think smalltalk-
meets-continuation-passing-style) to a number of LISPs with logic programming
features. A number of dialects even played with Algol-like syntax (McCarthy
himself had planned to give LISP an Algol-like syntax. S-Expressions were a
fortuitous stopping point on the way to an implementation of so-called
M-Expressions which never came).

In the writings of the time, I don't see much debate over whether these
systems were or were not LISP. Mostly, people understood this as a big family
of languages.

In contrast, Common LISP and Scheme not only have much more in common than
those LISPs did, in one important regard (lexical scoping), they are closer to
each other than they are to the vast majority of historical lisp
implementations. The only reason we're asking this question is because after
the fading away of other historical LISP dialects, the differences between
Scheme and Common LISP seem bigger than they are.

So yeah, I'd say Scheme is LISP.

(By the way, two great looks at the LISP family tree are The Evolution of
Lisp[1] by Guy L. Steele and Richard Gabriel, and Olin Shivers' History of
T[2], an early dialect of Scheme with an extensible version of set! similar to
Common Lisp's SETF)

[1] <http://www.dreamsongs.com/Files/HOPL2-Uncut.pdf>

[2] <http://www.paulgraham.com/thist.html>

------
dragonquest
Scheme most definitely is a Lisp. While it is clear enough that Scheme is
moving in a direction that is totally different to Common Lisp (which no one
doubts is a Lisp), McCarthy's original idea of Lisp, i.e. List Processing and
use of symbols in programming still hold true for Scheme. Its basic data
structure is still a cons cell and it uses S-exp.

If Scheme is not a Lisp, then by stretching the argument one can even say
Algol 68 (large like CL) is not Algol since its very different from Algol58/60
(much more minimal) or vice-versa. Besides the blurred line between what is
the language's evolutionary state and what should be considered its family
extension, for all practical (and I daresay otherwise also) Scheme is a Lisp.

------
d0m
It's confusing: Is the article saying that:

1\. Scheme is not Common Lisp ? 2\. Scheme is not Lisp ? 3\. Scheme is not _a_
Lisp ?

For the #1, everyone understands that Common Lisp is a different programming
language than Scheme. For the #3, it is clear that Scheme is _a_ Lisp.. where
Lisp, here, means the _Lisp family_. (Read, cons, car, macro system, etc etc)

For the #2, this is where it can get a bit blurry as it depends of what we
mean by Lisp. Do we mean all the dialect who decided to unit themselves in
Common Lisp? If so, Scheme is not Lisp. Do we mean a lisp dialect? So, Scheme
is Lisp. It's just confusing because of the word _lisp_ who is being used in
all possible ways.

But, Scheme is _a_ lisp and Scheme _is not_ Common Lisp. Whether Scheme is
Lisp, it depends of your meaning of Lisp.. So, unless you take the time to
clearly define what you mean by _lisp_ , it doesn't worth all the
argumentation.

~~~
silentbicycle
Exactly the same argument is continuously happening about OOP, because the
terms themselves are fuzzy and people argue past each other.

I think "Scheme is a Lisp _dialect_ " is clearer. "Does Scheme have enough
Lisp-iness?" avoids the semantic trap of "is", but in doing so, shows how
vague the question is.

------
IvarTJ
I have chosen to look further into Scheme rather than Common Lisp, in part
because it appears simpler, but also that Common Lisp is said to be directed
by a standard that has stood still for many years and which doesn’t address
many new issues faced by programmers. Scheme appears more nimble with many
different implementations for different purposes.

For historical reasons, I would call Scheme a Lisp, and I would not use the
word Lisp as synonymous to Common Lisp. Common Lisp surfaced after Scheme, and
Lisp was used of programming languages even before Scheme.

~~~
muyuu
Scheme moves very little, standards-wise. It's still mostly R5RS and R4RS,
with R6RS being deemed a total failure.

The standard of Scheme, if at all, is being set by major implementations.
However, Scheme is designed so you make your own early in the learning
process.

~~~
IvarTJ
True, but as I understand it, the Scheme standard isn’t as complicated as that
of Common Lisp. Implementations are partially standardized through SRFIs as
well, which I think is a more active process.

~~~
enduser
R5RS is famously shorter than the index of the ANSI Common Lisp spec.

------
raganwald
I found the arguments lurched from "Scheme is a Lisp because _____" to "It
would be nice if Scheme were abitrarily designated not a Lisp because _____"
and possibly "It would be nice if Scheme did not exist because _____." This
page needs some editing to put the arguments onto a common basis for
comparison.

There are three things being discussed, two of which are relevant to the title
and one which is not. First, what test or tests define whether language X is a
Lisp. Second, does Scheme pass these tests. Third, is it advantageous to
"Lisp" the community or concept or whatever for Scheme to be considered a
Lisp.

The third question has nothing to do with whether Scheme is a Lisp as defined
by the first two questions.

------
asciilifeform
The best argument I have seen in favor of Scheme being something other than a
Lisp is by E. Naggum:

 _"In the Algol family, the symbol table is a compiler construction. In the
Lisp family, the symbol table is a run-time resource. In this sense, Scheme is
a member of the Algol family and not a member of the Lisp family."_

([http://www.xach.com/naggum/articles/3225240324630811@naggum....](http://www.xach.com/naggum/articles/3225240324630811@naggum.net.html))

------
edw
Asking a CL advocate whether Scheme is a Lisp is like asking a plantation
owner whether his slaves are human beings.

The page's second argument for why Scheme is not a Lisp ridiculous. Basically:
CL is meant to be _the_ Lisp, therefore Scheme should just go away.

As an ardent, strident even, Schemer, it is my reasoned opinion that only a
mentally disabled person would today design a LISP-2; the idea that function
names occupy a namespace distinct from other objects makes _less_ sense than
Perl's syntax.

CL and Scheme occupy, by design, I am comfortable saying, two distinct roles
in the Lisp world: CL is the New Jersey Lisp whereas Scheme is the MIT Lisp.

That said, there's a new New Jersey Lisp in town, and it wipes the floor with
CL. It's called Clojure and it's a LISP-1 for kicking ass and taking names.

~~~
bguthrie
This analogy is too extreme. Slavery should not enter into a programming
language debate unless you are actually discussing _forced human bondage_.

Otherwise, I agree.

~~~
pstuart
What about java development?

------
jbooth
I didn't even know this was a debate.

I figured the overall list processing model (car/cdr and code as data), lack
of for loops and ubiquity of recursion _obviously_ made scheme a lisp.

I suppose I haven't really written any common lisp though, so maybe I'm
missing something.

~~~
enduser
Common Lisp has multiple looping constructs, and tail recursion is NOT part of
the Common Lisp spec.

The functional programming of Scheme is a Scheme thing, not a Lisp thing.

~~~
jbooth
Thanks. I had always heard of scheme as a dialect of lisp so I figured the
philosophy was consistent across both.

------
muyuu
Scheme is in fact the most orthodox, true to McCarthy's original intent,
living LISP.

~~~
ddlatham
Is Lisp a tool or a religion?

~~~
silentbicycle
It's a _building material_.

------
egometry
A better question: is THE UNIVERSE lisp?

