(defun AddNth_ALE1 (x n L / g i r)
(cond
( (>= n (setq g (length L))) (append L (list x)) )
( (/= 0 n nil L)
(setq r (reverse L) i (nth n L) g (- g n 1))
(while (/= n (length (setq r (cdr (member i r))))))
(while (/= g (length (setq L (cdr (member i L))))))
(append (reverse r) (cons x (cons i L))) ; ex (append (reverse r) (list x) (cons i L))
)
( (cons x L) )
)
)