Page 25 - AutoLISP и Visual LISP в среде AutoCAD
P. 25
2.9. РАБОТА СО СПИСКАМИ
Списки удобно использовать для организации и обработки больших
массивов связанных данных. AutoLisp имеет развитые средства для работы
со списками. Дадим их краткое описание.
(list [выражения])
Эта функция составляет список из своих аргументов. Отметим, что при
составлении списка функция list оценивает (вычисляет) выражение.
Пример:
(list 1 3.2 "ABC") ; Возвращает (1 3.2 "ABC")
(list (+ 1 2) (* 2 5)) ; Возвращает (3 10)
(car список)
Возвращает первый элемент списка. Если список пуст, возвращается nil.
(cdr список)
Возвращает все элементы списка, кроме первого. Если список пуст,
возвращается nil. Если элементом списка является точечная пара, функция
возвращает последний элемент, не заключая его в список.
Пример:
(car '(1 3.2 "ABC")) ; Возвращает 1
(cdr '(1 3.2 "ABC")) ; Возвращает (3.2 "ABC")
(cdr '(1 . 2)) ; Возвращает 2
Из функций car и cdr составлены функции извлечения элементов из
списка.
(caar x) Û (car (car x))
(cdar x) Û (cdr (car x))
(cadar x) Û (car (cdr (car x)))
(cadr x) Û (car (cdr x))
(cddr x) Û (cdr (cdr x))
(caddr x) Û (car (cdr (cdr x)))
Функции cadr и caddr часто используются для извлечения координат y и z.
(nth номер список)
Извлекает из списка элемент с нужным номером. Первый элемент списка
имеет номер 0.
Пример:
(nth 2 '(1 2 3 4 5)) ; Возвращает 3
(last список)
Возвращает последний элемент списка.
Пример:
(last '(1 2 3 4 5)) ; Возвращает 5
24