Я пытаюсь написать упорядоченную функцию Lisp, которая возвращает True, если список, который ей дан, отсортирован в порядке возрастания или убывания.
Пока у меня есть 3 вспомогательные функции для сортировки в любом случае, затем однасравнить их, а затем, наконец, функцию, чтобы определить, отсортированы ли они.
У меня возникают проблемы при вызове сравнения в моей заказанной (L) функции.Кажется, каждый раз уничтожает список.Может быть, вся моя реализация неверна.Спасибо за внимание!
(defun ascending (L)
(sort L #'<)
)
(defun descending (L)
(sort L #'>)
)
(defun compare (original sorted)
(cond
; I made this return the opposite for
; easier usage in the condition of ordered
((equal original sorted) T)
)
)
(defun ordered (L)
;(cond
(print L)
(setq temp1 L)
(compare L (ascending temp1))
(print temp1)
(print L)
;)
)