Subject: Re: `fast' global variables (Ex: Re: ??: using * for variable ?) From: Erik Naggum <erik@naggum.no> Date: 1999/03/24 Newsgroups: comp.lang.lisp Message-ID: <3131270602413412@naggum.no> * Mike McDonald | A literal object is that one, unique object. It says nothing about | the status of its contents. In their example of '("two"), it's the | cons cell that is the literal object being refered to, not the | string "two" or the NIL on the end. Granted, in this example, you'd | confuse most people by replaca-ing the list, but I don't see | anything in this definition that it says you can't. * Kent M Pitman <pitman@world.std.com> | Yes, I agree with this analysis philosophically, though the record is | a bit muddled and both you and Erik are probably slightly confused because | the language itself is slightly confused on this point. | "Sorry about that." I'm not quite certain that I see where the supposed confusion lies. if a compiler is allowed to store literals in pure space in the first place, why does the string that is the supposed "contents" of a list not granted the same option? you (or Mike) seem to be saying that given a literal ("foo" "bar") in some variable X, I cannot say (setf (cdr x) '("zot")), but I _can_ say (setf (char (car x) 0) #\g). this seems too specious to me to ever want to become an argument I want resolved. that is, I want it to be resolved at a much higher level: "literals are literals all the way down". #:Erik