I have a list of structs, and I want to write a function that alters some slots in the structs without affecting the original list. I tried using copy-list, but its not deep enough; the slot values are also altered in the original list. My question is, is there a built-in function that does what I want?, or should I write my own one?. Thank you.
EDIT:
I went on and wrote my own function, is there a built-in one that would do this though?
(defun deep-copy (li)
(if (null li)
nil
(cons (copy-structure (car li)) (deep-copy (rest li)))))
There is little value to have that function pre-defined.
Your code is just: