だから私は関数がリストを取り、それを元に戻すようにしようとしていますが、RPLACA
/ RPLACD
/をどのように使用するのかわかりませんNONC
。基本的に reverse と同じことを行いますが、元のリストのコンス ノードを使用し、新しいコンス ノードを割り当てません。私がこれまでに持っているのは
(defun rip(lst)
(cond (( null lst) 0)
((eq (nil) (cdr (last lst))) 1)
(((setq x (car (last lst)))
(rplaca (car (last lst)) (car first lst))
(rplaca (car first lst) x)) + 2 rip(butlast(rest lst)))))