在 lisp 的函数中修改列表和 return

Modify list and return it inside a function in lisp

(defun testthis (node index newvalue)
  (set-nth node index newvalue)
   node
)

我想在一个函数中修改列表的第 n 个元素,然后 returns 这个列表来保存所做的修改。

如何在 lisp 中实现这样的功能?

您可以使用 setfnth 访问器:

(defun replace-index (node index new-value)
   (setf (nth index node) new-value)
   node)

(defparameter *orig* (list 1 2 3 4))
(defparameter *mod* (replace-index *orig* 2 99))
(list *orig* *mod*) ; ==> ((1 2 99 4) (1 2 99 4))