O comportamento de setf
quando combinado com let
é confuso para mim. Aqui, setf
não está alterando o segundo valor da minha lista.
(defun to-temp-field (lst)
(let ((old-value (nth 2 lst))
(new-value 'hello))
(progn
(setf old-value new-value)
lst)))
Mas se eu fizer sem let
, muda ok:
(defun to-temp-field (lst)
(let ((new-value 'hello))
(progn
(setf (nth 2 lst) new-value)
lst)))
O que está causando esse comportamento?