HII have a query about that functions..for ex. if I build a list: (setf x ' (a b c))and after I set : (setf y x)now x and y are two different pointers to the same object in memory (like in Python's behavior...), is it?infact : (eq x y) -> TRUE like (eql x y) t...(ps I know that two objects are eq if they are actually the same object in memory with same value;but if i use push. : (push 'd x), only x changes not y!...then I can suppose that it's not a change_in_place...but a new list is create!!..right??

But if after use pop : (pop x) -> x returns now to have the same value of y but I suppose that now they are different object in memory, because also pop create a new list:

As you suspected CL doesn't change the target but makes a new list and associate X with that instead. Y still points to the same value that X once pointed to and that is still a part of X.Thus this is eq: