petera@hcrvax.UUCP (Smith) (10/31/85)
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.