Я пытаюсь реализовать функцию, которая возвращает список LIST (каждый список в LIST является результатом двух элементов, поменяемых местами в списке). Предполагается, что поиск будет выполняться на основе списка, сформированного из каждого свопа. Это часть моей программы для решения 8 задач. Вот что у меня есть
(setq *LIST* nil)
(defun swapped_list(lst)
(loop for j in (positions_to_swap) do
(setq *LIST* (rotatef (nth pos lst) (nth j lst))
*LIST*)
(swapped_list '(11 12 13 14 15 16 17 18 19))
Если positions_to_swap
равно (0 2 5)
и pos
равно 4
, это должно вернуть
((15 12 13 14 11 16 17 18 19) (11 12 15 14 13 16 17 18 19) (11 12 13 14 16 15 17 18 19))
Я тратил бесчисленные часы, пытаясь отлаживать без прогресса. Я перепробовал много вариантов, но ни один из них не работает.