(setq x '(1 2 3)) (1 2 3) (setq y '(4 5 6)) (4 5 6) x (1 2 3) y (4 5 6) (append x y) (1 2 3 4 5 6) x (1 2 3) y (4 5 6) (nconc x y) (1 2 3 4 5 6) x (1 2 3 4 5 6) y (4 5 6)という具合に,(nconc x y)によって, リストxの最後にリストyを繋げてゆく. nconcを自分で定義すると,
(defun my-nconc (x y) (rplacd (last x) y) x)とすればよい. lastは,リストの最後のコンスを返す関数で,
(defun my-last (x) (if (null (cdr x)) x (my-last (cdr x))))のように定義できるものである.
(my-last x) (3) (my-last y) (6) (my-nconc x y) (1 2 3 4 5 6) x (1 2 3 4 5 6) y (4 5 6)