Обучение AutoLISP в 8 уроках



             

Обучение AutoLISP в восьми уроках - стр. 9


сок. Он всегда работает справа налево.
 
Рассмотрим список трех элементов, функция ( или  процедуры  )  +,
атома 1, и списка ( + 2 3 ).
 
(+ 1 (+ 2 3))
 
AutoLISP оценивает этот список следующим образом:
 
(+ ..
 
AutoLISP рассматривает первый элемент списка и оценивает это. Так
как это - функция, то возвращает как значение набор команд по ко-
торому AutoLISP должен действовать далее.
 
(.. 1 ..
 
После команд для функции + , AutoLISP  находит  значение  второго
элемента в списке (первый аргумент функции + ), атом  1,  запоми-
нает его значение, и продолжает дальше.
 
(.. .. (+ 2 3)
 
AutoLISP находит значение третьего элемента в списке, второй  ар-
гумент функции + . Третий элемент - самостоятельный  список.  Как
AutoLISP оценивает список?
 
Во первых, оценивает функцию + и получает команды. Далее  находит
значения параметров, складывает их, и возвращает результат, кото-
рый в этом случае является целым числом 5.
 
Если элементов в списке больше нет,  AutoLISP  заканчивает  набор
команд складывая значение двух элементов вместе и возвращает зна-
чение целого числа 6.
 
(+ 1 (+ 2 3))
   |  \   /
   |   \ /
   |    | ------------ Значение объекта - целое число 5
   | ----------------- Значение объекта - целое число 1
 
ПРИНЯТИЕ СПИСКА ТАКИМ КАК ОН ЕСТЬ
 
Функция (quote) может использоваться чтобы  возвратить  список  (
или атом ) неоцененный; то-есть таким как он есть. (quote)  берет
один параметр, и возвращает как значение неоцененный параметр.
 
Например, это выражение возвращает список ( 1.0 2.0 3.0 )  таким,
какой он есть:
 
Command: ( quote ( 1.0 2.0 3.0 ))
(1.0 2.0 3.0)
 
Что случиться если у AutoLISP запросят оценить список?
Почему?
 
Command: ( 1.0 2.0 3.0 )
?
 
СВЯЗЫВАНИЕ СИМВОЛА И ЗНАЧЕНИЮ
 
Связывание - процесс в котором значение присваивается  определяе-
мому пользователем символу, или переменной.


Содержание  Назад  Вперед