Subject: Re: I don't understand Lisp
From: Erik Naggum <>
Date: 1998/09/17
Newsgroups: comp.lang.lisp
Message-ID: <>

* Jeff Dalton <>
| You seem to be presupposing that Lisp, Scheme, and Common Lisp are
| all on the same level.

  it doesn't seem that way to me.  why does it seem that way to you?

| (If they [Mandarin and Cantonese] are, indeed, considered dialects [of
| Chinese] -- I have not checked this.)

  they are not considered dialects of Chinese by the Chinese.  Western
  non-linguists appear to find "Chinese" a useful abstraction.  it's about
  as useful as "Germanic" about Western Hemisphere _spoken_ languages.
  (Chinese the writing-system is of course a different matter altogether.)

| Anyway, Saying that Lisp is a family of languages has a number of
| advantages over talking of "dialects of Lisp", and members of a family
| can be very different from each other.

  indeed.  however, membership in the family should ideally be testable by
  some reasonably simple means.  I think the crucial element to membership
  is whether source code can be read and represented internally in the
  run-time environment as a standard data structure, and as a corollary,
  whether one can expect READ and WRITE to exist and do the obvious thing
  for all types that do not reflect "dynamic state" and without _undue_
  complexity.  that is, the old "code is data" argument.  without that, I'd
  say it doesn't matter _what_ you do to look like any member of the Lisp
  family, and I'd have to remove Dylan and Perl 5 from the family.

| But I think it's a mistake to use "Lisp" in that way when it may be
| misunderstood as referring to all of Lisp.  This matters especially when
| "Lisp" is being criticised, as it all too often is.  It's fairly common
| for people to say that "Lisp" is a too large a language, or makes it too
| hard to deliver small applications, or has various other problems.  But
| often these claims are not true of Lisp in general (some Lisps are very
| small languages, a Lisp could make it easy to deliver small applications,
| and so on), but only of certain particular Lisps (maybe Common Lisp), or
| only of certain implementations.

  on this we agree.  arguing _against_ Lisp has to be done on the essential
  elements of similiarity, not against incidental differences or qualities
  of implementations.

| Another case where I disagree is where someone seems to go further than
| using "Lisp" as conveniently short for "Common Lisp" and say that Common
| Lisp is the only Lisp, or that "Lisp" just *means* common Lisp (and hence
| that there's either no Lisp family or else no other member).

  this would depend on context.  in some contexts, it is destructive and
  confusing to insist that "Lisp is not Common Lisp".

| For in fact other Lisps do exist, a number of them are still being used,
| and Lisps can be significantly different from Common Lisp.

  while still being used, I cannot but argue against learning them apart
  from the applications they are embedded in, such as Emacs' Lisp or
  AutoCAD's Lisp.

  ATTENTION, all abducting aliens!  you DON'T need to RETURN them!