> (setq a '(1 2 3 4)) (1 2 3 4) > (nth-insert 2 'x a) (1 2 X 3 4) > a (1 2 X 3 4) > (nth-insert-list 2 '(a b c) a) (1 2 A B C X 3 4) > a (1 2 A B C X 3 4)
(defun nth-insert (nth data sexp) (let ((x (nthcdr (1- nth) sexp))) (rplacd x (cons data (cdr x))) sexp)) (defun nth-insert-list (nth data sexp) (dolist (x data sexp) (nth-insert nth x sexp) (setq nth (1+ nth))))