Subject: Re: Integer with base preserved!
From: Erik Naggum <>
Date: 20 Jan 2004 04:33:24 +0000
Newsgroups: comp.lang.lisp
Message-ID: <>

* Adam Warner
| Your question while humorous exposes a limitation of the Common Lisp
| type system.


| To be able to operate upon source code at the list level requires the
| ability to reconstruct the types of objects to a much greater level of
| detail than the type system provides.

  Common Lisp is not defined on the character strings that make up the
  source code.  If you want to manipulate the character sequence that
  makes up the source code, you MUST NOT give it to the Common Lisp
  reader to convert it into Common Lisp objects.

  We had this discussion endlessly and without resolution in the SGML
  community a decade ago.  People worried ceaselessly about how they
  would parse SGML documents such that they could re-create the exact
  character sequence that made up the document.  This obsession with the
  source form halted all work on tools to manipulate SGML documents
  intelligently, because it is in fact completely irrelevant what the
  character sequence of the source is as long as multiple forms have
  exactly the same semantics.  Comments in particular caused a lot of
  grief, but you MUST realize that if comments are important to you, you
  MUST NOT give them to the Common Lisp reader or any other parser for
  which they are not only unimportant, but completely irrelevant.

  Common Lisp offers its programmers the tools they need to manipulate
  the source at a level where the character sequences does not matter,
  and this tradition in the Lisp family is quite possibly the single
  most intelligent property of the whole Lisp tradition.  (And I have
  not mentioned Scheme, OK?)

| Common Lisp isn't the best language I can imagine. It's simply the
| best one available.

  Why involve the whole world in your imagination in a negative way like
  this?  We already know that your imagination includes thinking about
  the wasted cons cell of the QUOTE operator, so it is hard not to think
  it is somewhat lacking in working within the world just the way it is,
  but an «imagination» of the impossible is not useful unless you aspire
  to publish your fantasy writings or perhaps special effects software.
  Whatever you imagine, it must be realizable at some level, and you
  have to keep track of which parts of your imagination are going to be
  realizable and which are going to involve the imagination of other
  people.  I maintain that programming /languages/ is not a good arena
  for unrealizable, speculative imagination.

Erik Naggum | Oslo, Norway

Act from reason, and failure makes you rethink and study harder.
Act from faith, and failure makes you blame someone and push harder.