Обучение 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 )
?
СВЯЗЫВАНИЕ СИМВОЛА И ЗНАЧЕНИЮ
Связывание - процесс в котором значение присваивается определяе-
мому пользователем символу, или переменной.
Содержание Назад Вперед