Итак, я пытаюсь заставить функцию принимать список и переворачивать его на место, но я не уверен, как бы я использовал RPLACA
/RPLACD
/NONC
. В основном делает то же самое, что и reverse, но использует узлы cons исходного списка и не выделяет новые узлы cons. Что у меня есть до сих пор
(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)))))
recurse
, ниreving
не существуют в языке. - person zck   schedule 17.02.2015