| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > AutoLisp - по умолчанию динамические переменные?

AutoLisp - по умолчанию динамические переменные?

Ответ
Поиск в этой теме
Непрочитано 08.08.2009, 13:01 #1
AutoLisp - по умолчанию динамические переменные?
Иванов Роман (Молодечно)
 
студент БНТУ
 
Минск
Регистрация: 26.06.2009
Сообщений: 1

Совсем недавно решил освоить язык программирования Lisp. Читаю книгу Мир Лиспа 1.

Вопрос совсем простой - но все таки хотелось бы, чтобы кто-нибудь меня или поправил или согласился: В качестве интерпретатора Lisp использую встроенный в AutoCad - сейчас читал главу о статических и динамических переменных - пытался ввести пример приведенный в книге в интерпретатор - в общем не совпало - результат получился таким, как если бы по умолчанию переменные были динамическими.

В связи с чем вопрос. Правильные ли я сделал выводы?
Просмотров: 1978
 
Непрочитано 08.08.2009, 18:07
#2
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Вопрос в том, что ты понимаешь под "динамическими" переменными?

Вот как раз в AutoLisp таких не существует.

Диалектов LISP существует множество. То, что описано в "Мир Лиспа" имеет отдаленное отношение к AutoLISP - хотя принципы везде одинаковые, реализации бывают разные. Эта книга "шибко умная", хотя и замечательная. AutoLISP, встроеннный в AutoCAD - одна из простейших реализаций.

Это в Common LISP можно объявлять динамические переменные. В AutoLISP - всё проще. Там нет объявлений переменных статическими или динамическими. Вообще-то шиком в LISP считается минимальное использование переменных. Но без них часто не обойтись. Поэтому переменные считаются локальными или глобальными.

Локальные - входящие в левую часть определения функции

Код:
[Выделить все]
(defun чё-то_делаю (х у / z)
....
(setq z (чё-то x y))
...
(setq x (ишшо-чё-то z))
....
)
Здесь z - объявленная локальная переменная. Аргументы x и y внутри функции тоже локальные переменные. Их изменение внутри функции не влияет на исходные значения.

Если бы z не была объявлена, она стала бы глобальной.

В общем, тут много можно рассуждать. Например, про объявление функции в теле другой функции. Но изучать AutoLISP с практическими целями по книге "Мир Лиспа" не стоит. Так же, как не стоит использовать AutoLisp для изучения Лиспа "вообще" и для обкатки примеров из этой книги.
ShaggyDoc вне форума  
 
Непрочитано 08.08.2009, 21:52
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Немного поправлю: не в левую, а в правую (точнее, после разделителя "/") - переменные локальные. В левой части, можно сказать, используются параметры вызова функции.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.08.2009, 06:30
#4
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Немного поправлю: не в левую, а в правую (точнее, после разделителя "/") - переменные локальные. В левой части, можно сказать, используются параметры вызова функции.
Конечно. Просто я когда писал, забыл какая рука левая, какая правая

Тогда тоже немного поправлю поправку - не параметры, а аргументы. Потому как функция.
ShaggyDoc вне форума  
 
Непрочитано 09.08.2009, 11:32
#5
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Ок, не вопрос
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > AutoLisp - по умолчанию динамические переменные?

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Системные переменные - Как поменять значения по умолчанию? Maps AutoCAD 34 01.04.2021 13:44
Недокументированные сист. переменные Makswell Справочник команд 114 19.06.2010 21:45
Как отладить нейтив и менеджед код в COM объекте который используется из AutoLISP? lexluther LISP 1 12.08.2009 08:37
язык ввода по умолчанию в авто каде astronomo AutoCAD 7 23.06.2009 06:06
Глюк. Динамические блоки становится статическим! b_anton Динамические блоки 10 24.06.2008 16:27