>>297 これで cons の数は同じくらいになる?

(defun my-nconc-1 (lst1 lst2)
(cond ((null lst1) lst2)
(t (setf (cdr (last lst1)) lst2)
lst1)))

(defun my-append (&rest lsts)
(cond ((null lsts) lsts)
((null (cdr lsts)) (car lsts))
(t (let ((result nil))
(dolist (item lsts result)
(setq result (my-nconc-1 result (copy-list item))))))))