修改列表并将其返回到lisp中的函数内

时间:2015-05-24 00:50:25

标签: lisp elisp common-lisp

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

我想在函数中修改列表的第n个元素,然后返回此列表以保存执行的修改。

如何在lisp中执行此类功能?

1 个答案:

答案 0 :(得分:2)

您可以使用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))