Nconc
nconc concatenates two lists to form a single list; instead of copying the first list as append does, nconc modifies the end of the first list to point to the second list.
(nconc (list 'a 'b 'c) '(d e)) -> (a b c d e)
public static Cons nconc (Cons x, Cons y) {
Cons ptr = x;
if (x == null)
return y;
else { while (rest(x) != null)
x = rest(x); // walk to end
setrest(x, y);
return ptr; } }
(defun nconc (x y)
(let (ptr)
(setq ptr x)
(if (null x)
y
(progn ; progn is like { }
(while (not (null (rest x)))
(setq x (rest x)) )
(setf (rest x) y)
ptr) ) ))