在 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 中实现这样的功能?
您可以使用 setf
和 nth
访问器:
(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))
(defun testthis (node index newvalue)
(set-nth node index newvalue)
node
)
我想在一个函数中修改列表的第 n 个元素,然后 returns 这个列表来保存所做的修改。
如何在 lisp 中实现这样的功能?
您可以使用 setf
和 nth
访问器:
(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))