Основы автоматизированного проектирования химических производств. Миронов В.М - 138 стр.

UptoLike

Составители: 

138
Для ввода и вывода при работе с файлами могут быть использованы уже
известные функции, но с другим форматом.
(READ-LINE_<дескриптор файла>),
(READ-CHAR_<дескриптор файла>),
(WRITE-LINE_<текст><дескриптор файла>),
(WRITE-CHAR_<целое число>_<дескриптор файла>),
(PRIN1_<выражение>_<дескриптор файла>),
(PRINC_<выражение>_<дескриптор файла>),
(PRINT_<выражение>_<дескриптор файла>).
AutoLISP работает только с текстовыми файлами.
8.14 Обработка списков
Отсутствие в AutoLISPе массивов компенсируется списками. Список
это объект формы:
<список>=(<[элемент]>)
<элемент> - список или атом.
Особым случаем списка является точечная пара:
<точечная пара>=(<атом.атом>).
При хранении точечных пар требуется меньше памяти, чем для обычных
списков. Точечная пара формируется функцией (CONS). Некоторые функции
обработки списков не работают с
точечными парами. Если точечная пара вы-
дается на экран, то между атомами печатается точка.
Для создания списков используются функции:
(LIST_<элемент>...) - формирует список из любого числа атомов или спи-
сков и возвращает список.
(CONS_<элемент><список>) - добавляет в начало существующего списка
новый элемент и возвращает обновленный список.
(CONS_<атом><атом>) - создает точечную
пару.
(APPEND_<список>...) - соединяет несколько списков в один.
(SETQ_A_(LIST_(1.0_2.0)(C_D_E)) ;A=((1.0_2.0)(C_D_E))
(SETQ_B_(APPEND_(1.0_2.0)(C_D_E)) ;B=(1.0_2.0_C_D_E)
(REVERSE_<список>) - возвращает список с элементами, расставленными
в обратном порядке.
Для выделения элементов списков используются функции:
(CAR_<список>) - возвращает первый элемент списка. Если список пуст,
то возвращается NIL.
(CDR_<список>) - отбрасывает первый элемент списка и возвращает но-
вый список. Если список пуст, то
возвращается NIL. Если списокточечная
пара, то возвращается второй элемент как атом, а не как список.
В AutoLISPе определены функции, обеспечивающие последовательное
выполнение CAR и (или) CDR вплоть до четырех уровней вложенности:
CAAR, CADR, CDDR, CADAR и т.д. Например: