Subject: Re: Why learn Lisp
From: Erik Naggum <erik@naggum.no>
Date: 27 Aug 2002 20:09:38 +0000
Newsgroups: comp.lang.lisp
Message-ID: <3239467778955852@naggum.no>

* Adam Warner
| Scratch that. A large and more satisfying simplification would be the
| original text being associated with any individual symbol name the first
| time it is met by the reader (perhaps until the associated text is
| explicitly destroyed).

  What would happen to (defstruct foo ...)?  Would you have MAKE-foo or
  make-foo?

  I have spent many hours working on various ways to make a case-preserving,
  lower-case Common Lisp work according to the standard, but I find myself
  stumped by macros that generate symbols by "concatenating" input symbols
  with symbols of its own making.  I have come to believe that this should be
  avoided at all cost, including writing out the symbols created by defstruct
  in full.  You see, what I want is for `intern´ and `symbol-name´ to use
  lower-case symbol names when I throw a switch, but if I also want a case-
  preserving reader, what comes out of defstruct is probably MAKE-foo.  To
  make this work, macros that call intern need to capture the state of the
  flag that modifies how `intern´ and friends work so that they would do the
  right thing as the macro writer intended when it was compiled.  This is
  pretty messy, so I have not taken then idea any further.

| The idea would seem to require the string information for each unique
| symbol to be retained forever (unless explicitly destroyed).

  Why do you think this is not how things work today?

-- 
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.