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



             

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


 
(+ ..
 
AutoLISP рассматривает первый элемент списка, где  как  ожидается
можно найти функцию. Функции - любые внутренние функции AutoLISP,
или процедуры, или определяемые пользователем  функций  созданных
функциями (lambda) или (defun).
 
AutoLISP оценивает функциональный,  или  первый  элемент  список.
Функция оценивается для определения набора команд  который  сооб-
щает AutoLISP что делать далее.
 
( Не изящно ли это? Каждое сложное  выражение  в  AutoLISP  несет
собственные команды обработки вместе с ним, в том же самом  месте
каждый раз; в голове списка. )
 
В этом случае функции + оценивает набор команд  который  сообщает
AutoLISP, "Иди искать значение каждого  последующего  элемента  в
этом списке. Когда все сделаешь, сложи все  значения  и  возврати
результат как значение всего списка. "
 
(.. 1 ..)
 
Следуя набору команд, AutoLISP находит значение  следующего  эле-
мента в списке, атома и целого числа 1. Целые Числа оценивают как
такими как они есть, так что AutoLISP сохраняет значение 1 и про-
должает следовать набору команд.
 
(.. .. 2)
 
Значение целого числа 2 - 2. AutoLISP сохраняет  это  значение  и
продолжает далее.
 
Элементы в списке после функции - параметры функции; то-есть  они
- данные по которым функция выполняется. При не  нахождении  дру-
гих элементов в списке, или параметров функции, AutoLISP заканчи-
вает выполнение команд которые  он  получил  оценивая  функцию  и
складывает значения аргументов, возвращая целое число 3 как  зна-
чение списка.
 
Command: ( + 1 2 )
3
 
БОЛЕЕ СЛОЖНЫЙ ПРИМЕР
 
AutoLISP ( любой ЛИСП, фактически ) всегда оценивает  элементы  в
списке справа налево. Вы можете оценивають эти  элементы  вложен-
ным способом, изнутри, однако это  неправильно.  Это  может  быть
удобно для нас в некоторых случаях  чтобы  следить  за  процессом
оценки изнутри списка, но AutoLISP так никогда не оценивает  спи-



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