On Mon, Dec 05, 2016 at 01:44:53AM -0500, Bruno Franco wrote: > Is there a function that would copy A so that no changes in any of the > nested lists in A would change B, and vice versa?
You mean a "deep copy". Contrary to what one might expect, it is very rarely needed. At least I never needed it in my 35 years of Lisp. I almost never used even the single-level 'copy' function. Instead, you would rather re-consider your data structures, and operate on them in a non-destructive way. Having said this, you can do e.g. a 2-level copy with (mapcar copy List) For an arbitrary depth you must use recursion (recur (List) (if (atom List) List (cons (recurse (car List)) (recurse (cdr List))) ) ) > Also, as a more general question, is there a name for when two variables > are entangled like this? Where changing one changes the other? The term is "destructive" operations. In the PicoLisp reference, all destructive functions should be marked as that. ♪♫ Alex -- UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe