Джереми ответы должны работать; но, тем не менее, если вы обнаружите, что пишете код вроде
(setf (nth i my-list) new-elt)
вы, вероятно, используете неправильную структуру данных. Списки - это просто связанные списки, поэтому они имеют O (N) для доступа по индексу. Возможно, вам лучше использовать массивы.
Или, может быть, вы используете списки в качестве кортежей. В этом случае они должны быть в порядке. Но вы, вероятно, хотите назвать методы доступа, чтобы кто-то, читающий ваш код, не помнил, что означает «nth 4». Что-то вроде
(defun my-attr (list)
(nth 4 list))
(defun (setf my-attr) (new list)
(setf (nth 4 list) new))