Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site hcrvax.UUCP Path: utzoo!hcrvax!petera From: petera@hcrvax.UUCP (Smith) Newsgroups: net.lang Subject: Lisp numeric programs and garbage creation (reply) Message-ID: <2049@hcrvax.UUCP> Date: Thu, 31-Oct-85 12:26:48 EST Article-I.D.: hcrvax.2049 Posted: Thu Oct 31 12:26:48 1985 Date-Received: Fri, 1-Nov-85 05:24:21 EST Organization: Human Computing Resources, Toronto Lines: 23 You guys seem to be forgetting that there is a whole lot more to adding two numbers in a lisp interpreter than incrementing a location somewhere. Look: Suppose A is bound to (4 5 6) And somewhere I pass A to a procedure that adds 1 to each element and returns the list. The result is (5 6 7) but that is a completely different list. It has to be otherwise if A is used again at the upper scope level it is wrong. Hence when all is said and done we have COPIED A. There just is no other way in a lisp interpreter. There is then garbage. The point I was trying to make is that it does not matter that you cram 5 6 and 7 into the car fields of the cons cells that make up the list (4 5 6) you still cannot operate on those numbers directly. The effect of cramming 4 5 and 6 into car pointer fields mearly reduces the garbage produced by having to create new numeric atoms as well. We still create new cons cells. Peter Ashwood-Smith Human Computing Resources Tononto Ontario.