Lisp-код
Формулировка задачи:
Даны несколько списков строчных констант: первый список упорядочен по алфавиту, другие не упорядочены. Вставить в первый список, не нарушая его упорядоченности, элементы других списков. Списки и их количество должны задаваться с командной строки AutoCAD. (Программа должна вызываться командой из среды AutoCAD).
Решение задачи: «Lisp-код»
textual
Листинг программы
(defun c:sharlatan ( / a b) (acad_strlsort (apply 'append (while (setq a (read (read-line))) (setq b (cons a b))))))
Объяснение кода листинга программы
В коде представлена функция с именем sharlatan, которая принимает два аргумента.
Далее, в функции используется встроенная функция acad_strlsort, которая сортирует строки в алфавитном порядке.
Затем, с помощью функции apply вызывается функция append, которая объединяет строки из списка в одну строку.
Внутри цикла while происходит считывание строк с помощью функции read-line.
После каждой прочитанной строки, она добавляется в начало списка с помощью функции cons.
Таким образом, после выполнения функции sharlatan, в переменной b будет храниться отсортированный список строк, которые были введены пользователем.
Список переменных и их значений:
a- текущая строка, которую необходимо отсортироватьb- список строк, отсортированных в алфавитном порядкеacad_strlsort- встроенная функция, сортирующая строки в алфавитном порядкеappend- функция, объединяющая строки в одну строкуwhile- цикл, выполняющийся до тех пор, пока условие истинноread-line- функция, считывающая строку с консолиcons- функция, добавляющая элемент в начало списка