|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
(unload "prilojenie.lsp")
Программист широкого профиля.
Челябинск
Регистрация: 08.09.2005
Сообщений: 722
|
||
Просмотров: 3162
|
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Внимательнее читайте Полещука. Если переменные записаны в заголовке функции после "слеша" (косой черты), то они являются локальными и время их жизни заканчивается с прекращением работы функции.
(defun Название функции (Арументы / Локальные переменные) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Насчет имен переменных - я что-то на ура не смог найти свой старый пост. Лично у меня получилось так (идея слизана с ruCAD, с небольшой адаптацией):
1. Все функции имеют префикс, уникальный по максимуму - мой ник, их имя формируется примерно так: <ник>-<Над чем работаем>-<выполняемое действие> (т.е. нет функции, например cl2pl (конвертация линии в полилинию, есть kpblc-conv-line-to-pline) 2. Функции, возвращающие какие-либо значения, имеют в начале имени знак "подчеркивания". 3. Функции, не возвращающие значения, но используемые только внутри других функций, как правило, имеют знак подчеркивания впереди (хотя и не всегда). 4. Глобальные переменные обрамляются знаком "*" и имеют опять же мой ник в качестве начала имени. 5. Имя должно быть информативным, на английском языке. Нет имен i, k, aa - есть item (перечисление элементов списка, к примеру), counter (счетчик), selset (набор примитивов - Selection Set), *kpblc-activedoc* - указатель на активный документ и т.д. 6. Глобальные переменные определяются в общем загрузчике (и фактически являются константами). Все остальные должны быть локальными, как показал {Smirnoff}. Ну и так далее.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Цитата:
Вобще, достаточно удобно все вложенные функции определять и локализовать в пределах "главной" функции приложения, тогда другие программы не смогут их повредить (переопределить) - либо будет работать все, либо рухнет все сразу. |
|||
![]() |
|
||||
Программист широкого профиля. Регистрация: 08.09.2005
Челябинск
Сообщений: 722
|
Цитата:
первый рисует квадратики второй треугольники и если я для каждого файла.lsp координаты базовых точек фигур буду сохранять в переменных с уникальными именами то .................. Вобщем как я понимаю из всего вышесказанного их просто нужно нилить: Код:
|
|||
![]() |
|
||||
сисадмин Регистрация: 26.08.2003
Самара
Сообщений: 1,022
![]() |
Цитата:
Если же такой необходимости нет - то переменные просто локализовать при объявлении функции: Код:
Цитата:
![]() PS кто то из нас совсем запутался..... |
|||
![]() |