I have the following function (simplified to that version):
(defun append-test (xs)
(let ((ys `(foo ,(nconc `(bar) xs))))
(nconc ys `((baz)))))
If I evaluate the function multiple times (append-test '((foo)))
the list keeps increasing in size, but I can't understand why. The nconc
modifies the original list, but because the original list is either a function argument or let-variable, they should be created anew per every invocation, right? What is happening here?