Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site topaz.RUTGERS.EDU Path: utzoo!linus!philabs!cmcl2!seismo!columbia!topaz!hedrick From: hedrick@topaz.RUTGERS.EDU (Chuck Hedrick) Newsgroups: net.lang.lisp Subject: Re: HELP: a bug in my lisp interpreter! Message-ID: <3228@topaz.RUTGERS.EDU> Date: Sun, 11-Aug-85 11:36:13 EDT Article-I.D.: topaz.3228 Posted: Sun Aug 11 11:36:13 1985 Date-Received: Tue, 13-Aug-85 04:01:20 EDT References: <16700002@uiucuxc> Reply-To: hedrick@topaz.UUCP (Hedrick) Organization: Rutgers Univ., New Brunswick, N.J. Lines: 10 You report that a macro was replaced by its expansion. This is probably not a bug. Several versions of Lisp do this intentionally. It saves the time of expanding the macro each time the form is evaluated. WIth systems that are interpreted, and use a lot of macros, the time saving can be dramatic. In case you wonder how it is changing the value of the variable, probably it is not. That is, the new expression is probably EQ to the old one. It just has its CAR and CDR changed to new values. This technique is used so that in case the form is embedded in the middle of something else, all pointers now point to the new form.