Выражения на языке AutoLISP.

Типы данных в AutoLISP.

Автолисп поддерживает следующие типы данных:

целое число со знаком от -32768 до 32767 или от 0 до 65535 (2 байта) без знака;

вещественное число, записываемое через десятичную точку: 10.52 или в экспоненциальном формате: 2.52Е-12; десятичное число нельзя сокращенно начинать или заканчивать точкой. Например, .1 вместо 0.1 или 2. вместо 2.0. Это связано с тем, что есть тип данных – точечная пара, разделителем которой является точка.

строка символов длиной до 127 знаков, заключенная в двойные кавычки. Запись “10.5” воспримется как текст, а не число. Символ "" является служебным и, если он нужен в программе, то при записи удваивается: так, например, текст "32" должен быть записан как "3\2". Слеш "" используется для обозначения перевода строки ( " "), возврата каретки: (" ") и табуляции ( " ");

логический тип, принимающий два возможных значения: истина (обозначатся Т) или ложь (обозначается NIL).

AutoLISP имеет и другие типы данных. Например:

дескрипторы файлов(описатели файлов), в которых хранятся описания открытых файлов;

символы – в них хранятся не значения, а ссылки на другие переменные.

Самым важным, интересным и сложным типом данных в AutoLISP является

СПИСОК. Как следует из названия языка LISP (LISt Processing) - список является основным понятием языка Лисп. Список – это перечень атомов или списков, отделенных друг от друга пробелами и заключенных в скобки. Программа, функция и выражение в AutoLISP являются списками.

Атом в Лиспе - это простой (в отличие от списка) тип данных: число, символьная строка, функция.

В Лиспе по умолчанию любой список является программой и интерпретатор будет пытаться ее выполнить. Если список - не программа, а данные, то надо явно отключить его интерпретацию. Для этого используется функция QUOTE [См. раздел 3.5.1. Использование функции QUOTE.].

Выражение – это СПИСОК, первым элементом которого является имя функции; т. е. выражение – это ФУНКЦИЯ. В Автолиспе любая “программа” является выражением (функцией) и состоит из выражений (функций).

Основные свойства выражений:

- начинаются и заканчиваются круглой скобкой;

- аргументами функций также могут быть функции, поэтому число открывающих и закрывающих круглых скобокдолжно быть одинаковым;

- после первой открывающей скобки должно идти имя функции (идентификатор); например, запись (+ 10 20) означает суммирование аргументов 10 и 20;

- аргументы функции отделяются пробелами от имени и друг от друга;

- лишние пробелы и переносы строк игнорируются, что позволяет создавать наглядность при записи выражений; например, записывать имена используемых команд Автокада столбцом, если они связаны с одной функцией автолиспа, и размещать открывающую и закрывающую скобки на одной линии:

(соmmаnd “_line” …

“_circle” …

)

- после выполнения выражения возвращается результат, который можно видеть на экране (если не отключить вывод результата);

- с логической точки зрения, если выражение не может быть вычислено, то возвращается ключевое слово NIL и результат считается ложным;

- выражения могут занимать несколько строк;

- в именах символов и функций не делается различий между верхним и нижним регистрами AutoLISP;

- имена не могут начинаться с цифры;

- комментарииначинаются с точки с запятой и продолжаются до конца строки;

- внутри заключенных в кавычки строк символ обратный слеш () используется для того, чтобы

можно было включать управляющие символы:

\ означает запись символа обратного слеша "";

e означает ESC;

означает новую строку;

означает возврат каретки;

означает табуляцию (клавиша Тab) ;

nn означает запись восьмеричного кода nnn.

Например, следующая функция выдаст запрос на новой строке

(prompt " Enter first point: ")

Литература.