Введение в Автолисп | страница 7



Выражения Автолиспа записываются в формате


(function_name [arguments]...)

(имя_функции [аргументы]...).


В дальнейшем, как это принято в литературе по программированию, аргументы, которые не являются обязательными и могут быть опущены, в описании формата выражений заключаются в квадратные скобки. Многоточие, заключающее выражение перед закрывающей круглой скобкой, указывает на то, что список аргументов может быть продолжен.

Существует четыре типа переменных Автолиспа: целые, вещественные, точки и строки. Тип переменной автоматически определяется Автолиспом и должен соответствовать типу, воспринимаемому конкретной функцией. Значение переменной сохраняется до конца сеанса или до замены его другим значением. Имя переменной должно начинаться с алфавитного символа. Запрещенные символы перечислены выше.


1.4. Основная функция присвоения в Автолиспе

Любой язык программирования, встречая некоторую именованную переменную, сопоставляет ей ее значение. Это значение в операторных языках обычно вычисляется и присваивается переменной с помощью оператора присвоения. Особенностью Автолиспа является то, что в переменной может храниться не только вычисленное значение, но и целое выражение. Этот язык содержит в своем составе функцию quote, позволяющую сохранить выражение без его оценки. Формат функции:


(quote выражение),


например:


(quote а) возвращает А,

(quote (a b c)) возвращает (А В С),

(quote (+ 1 4)) возвращает (+ 1 4).


В практике создания программ слово quote заменяется апострофом. Автолисп совершенно одинаково воспринимает и обрабатывает записи:


(quote (a b c)) и '(a b с).


Основной функцией присвоения переменной ее значения является функция


(setq перем1 выраж1 [перем2 выраж2 ...]).


Функция setq, позволяет присвоить значения нескольким переменным, однако возвращает только последнее выражение. Например:


(setq a 5.4) возвращает 5.4,

(setq a 5.4 b 8.7 с “width”) возвращает "width”,

(setq x ‘(a b)) возвращает (A В).


На примере функции setq хорошо видно действие функции quote. Так, например:


(setq x (+ 1 4)) возвращает 5,

(setq x ‘(+ 1 4)) возвращает (+ 1 4).


Поскольку функция quote сохраняет выражение без его оценки, элементы этого выражения, по сути дела, являются списком. Поэтому для записи такого выражения во многих случаях можно использовать функцию организации списков list. Следующие два примера определения точки на чертеже для Автолиспа эквивалентны:


(setq pt1 ‘(3.0 4.5)),

(setq pt1 (list 3.0 4.5)).