(defun nth-delete (nth sexp) (cond ((zerop nth) (rplaca sexp (cadr sexp)) (rplacd sexp (cddr sexp))) (t (let ((x (nthcdr (1- nth) sexp))) (rplacd x (cddr x)) sexp))))