[net.lang] Lisp numeric programs and garbage creation

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.