我正在写为反转说类的一个对象的列表元素的CLOS类的功能。Lisp中的实例变量?
我有一个方法将返回反向列表,但我如何使它将对象的列表设置为该列表?我可以在存储列表的函数中使用实例变量,然后将该元素设置为该变量?还是有更简单的方法?
这里的方法,因为它现在是:
(defun my-reverse (lst)
(cond ((null lst) ‘())
(t (append (my-reverse (cdr lst)) (car lst)))))
它传递的对象是(L我的列表),然后访问将是(我的列表-LS L)。
编辑:认识到cons
不适用于2个列表。
EDIT2:我认为正确的代码是:
(defun my-reverse (l my-list)
(cond ((null (my-list-ls l) ‘())
(t (setf (my-list-ls l) (append (my-reverse (cdr (my-list-ls l)))
(car (my-list-ls l)))))))
这就是我通过设置参数(l my-list)所做的事情。示例代码是用于使用任何列表进行处理,我的问题是使函数将结果保存在my-list l的列表元素中。 – Portaljacker
当前示例代码中的函数正在接收一个列表,而不是CLOS对象。要么你误解你在做什么,要么你的示例代码与你的问题根本不相关。一般来说,关于你的问题,作为作者的每个访问者函数都是一个SETF可能的地方。如果没有这样的访问器,'(slot-value slot)'也是一个SETF能够的地方。 –
'(插槽值对象'插槽)',当然。 –