Subject: Re: Integer with base preserved! From: Erik Naggum <firstname.lastname@example.org> Date: 20 Jan 2004 04:33:24 +0000 Newsgroups: comp.lang.lisp Message-ID: <3283562004957505KL2065E@naggum.no> * Adam Warner | Your question while humorous exposes a limitation of the Common Lisp | type system. Nonsense. | 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.