Есть ли общая функция Lisp, которая будет заменять два элемента в списке с учетом их индексов и возвращать измененный список?Перемещение элементов в общем списке Lisp
11
A
ответ
16
Вы можете использовать rotatef
:
(rotatef (nth i lst) (nth j lst))
Конечно, список индексация может быть дорогой (стоимость O (размера списка)), так что если вы делаете это с любой регулярностью, вы бы скорее хотели использовать массив:
(rotatef (aref arr i) (aref arr j))
4
Я хотел бы избежать индексации в списке дважды, используя nthcdr
, чтобы получить корд клетки конс, содержащей первый элемент, который вы хотите поменять, а затем использовать elt
к г и оставшийся элемент из подсписок. Это означает, что вам нужно только индексировать, начиная с главы списка один раз.
(let ((list-tail (nthcdr i list)))
(rotatef (car list-tail)
(elt list-tail (- j i)))
list)
По крайней мере, с моей точки зрения, это достаточно утомительно, чтобы оправдать функцию.
Смежные вопросы
- 1. Сравнение элементов в общем списке
- 2. Слияние символов в общем lisp
- 3. Перемещение вверх и перемещение элементов в списке
- 4. Перемещение элементов в списке (Python)
- 5. Перемещение элементов в списке Python
- 6. Bind элементов в общем списке и сериализации
- 7. вопрос об общем lisp
- 8. Загрузка файла в общем lisp
- 9. Передача функции в общем Lisp
- 10. Вложенная петля в общем LISP
- 11. Именованный лямбда в общем lisp
- 12. центрирование текста в общем lisp
- 13. Моделирование схемы в общем lisp
- 14. Найти режим списка (в общем LISP)
- 15. Перемещение элементов в списке в C#
- 16. Перемещение элементов в связанном списке C# .NET
- 17. C# Перемещение раздела элементов в списке
- 18. Переопределение в общем списке
- 19. Многопоточность в общем списке
- 20. NullPointerException в общем списке
- 21. Строка в список без # \ в общем lisp
- 22. В чем смысл # +: и # -: в общем lisp
- 23. Вставка Сортировка списка в общем LISP
- 24. В общем Lisp, что такое печатное представление?
- 25. Макросы, генерирующие сборку, в общем lisp
- 26. Как вы копируете массив в общем lisp?
- 27. Как реализовать естественный вид в общем lisp?
- 28. требуют и * модули * устарели в общем lisp?
- 29. Локальная динамическая привязка в общем lisp
- 30. Отключение результатов печати в общем lisp
DAMN! SO нужно что-то сделать для подсветки синтаксиса. Я думал, что это плохо для питона. – aaronasterling