|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
|||||||
Регистрация: 10.08.2009
Сообщений: 5
|
Цитата:
Цитата:
И какие это ситуации? Цитата:
Цитата:
Цитата:
Цитата:
Под ф-цией понимаю процедуру которая возвращает значение, процедура соотв не возвращет ничего. |
||||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Ну я примерный код показал... SendCommand
Ну, например, работа с неактивным документом. По-моему, бывают проблемы, если окно AutoCAD невидимо. Или что-то такого типа (не проверял, точно не скажу). Цитата:
Ну, вообще-то вариант, если работать через ADO Но это если рассматривать чисто технические вопросы.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 21.07.2008
Луцьк
Сообщений: 179
|
Дима_, мой пример написан лишь для частного случая, чтобы продемонстрировать возможность написания функции аналогичной if. Более общий вариант написал Алексей (хотя лямбду можно и убрать).
Я не совсем понимаю причем здесь парсинг и как он влияет на определение функция/не функция. |
|||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Если ты уберешь лямбду функция не будет работать (будет но с ошибкой) - то есть если используеться специальная форма if то
Код:
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Где написано, что любая функция обрабатывает все аргументы до вызова функции? Честно говоря спор совершенно бессмысленный. Назвать можно как угодно, например, "функция с особенным поведением". Операторы не возвращают значений в отличие от (if) (or) (and) и т.д.
|
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Я про это и говорю - и штатными средствами автолиспа ее никак не создашь - в отличие от функций.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Штатными средствами Autolisp не только такие функции нельзя создать, но и многие другие - например, никакие функции с переменным числом аргументов (на ObjectARX - можно). Так что можно классифицировать функции на "встроенные" и "не встроенные". "Встроенные" могут иметь (и имеют) иную логику поведения.
|
||||
|
||||
Регистрация: 20.05.2010
Сообщений: 26
|
Здравствуйте, уважаемые участники форума.
Вы, Дима_, вероятно, лукавите. Язык LISP (как «родовое» понятие) владеет мощным средством, которое называется МАКРОСЫ (macros). Этот механизм позволяет «на лету» определять новые (или переопределять существующие) конструкции языка - по сути дела, создавать собственные <специализированные> языки. (В языках с "операторами" этого и в помине нет.) Особенность макро (в отличие от функции) в том, что его аргументы при вызове не вычисляются. Вторая важная особенность в том, что вызов макро выполняется в два этапа: макрорасширение, затем вычисление. Так что в «обычном» LISPе определение (if) выглядит <например> так (из книги Хювёнен-Сеппянен "Мир Лиспа" т.1): Код:
Код:
|
|||
|
||||
Регистрация: 21.07.2008
Луцьк
Сообщений: 179
|
Цитата:
а теперь о lambd-е и премере Алексея Кулика: Код:
|
|||
|
||||
Регистрация: 06.06.2016
Сообщений: 327
|
Есть функция:
Код:
----- добавлено через ~2 мин. ----- Что я должен написать в командной строке, чтобы добавить "My_atribut=100500"? Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Кондратий Тихонович, опять двадцать пять... Функция и команда - далеко не одно и то же. Снова: разница между определениями блока и вхождениями блока все еще покрыта завесой страшной тайны?
Из конца в конец, ты же заявлял, что программируешь больше 30 лет - ну так разберись в коде, это же для тебя несложно.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 06.06.2016
Сообщений: 327
|
Цитата:
Я никогда не говорил, что не понимаю разницы между определением блока и его вхождениями на чертеже. Цитата:
Если по теме сказать нечего - лучше промолчите ----- добавлено через 58 сек. ----- Лучше б рассказали, как передавать в команду (или функцию) параметры. А именно, имя атрибута и значения этого атрибута |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Цитата:
будет работать, но если изменить команду на функцию и добавить аргументы. Это первые главы любой книги по лиспу, даже можно сказать - первые страницы, так как относится к основным базовым понятиям лиспа. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Кондратий Тихонович, добро пожаловать в тему "Обучите лиспу на примере" и в публикации.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
"C:add$", объявленная без аргументов и "add$" - совершенно разные вещи? Префикс "C:" означает, что это особый вид функции - команда. Её можно вызвать с клавиатуры, набрав add$. Но ей нельзя передать аргументы - ни с клавиатуры, ни программно. Но может быть функция, объявленная как Код:
Вот тогда можно вызвать (add$ "Кондратий" "Самый гениальный программист") Последний раз редактировалось ShaggyDoc, 28.08.2019 в 10:22. Причина: Убрал теги bold из кода |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SolidWorks : Обновление таблиц параметров виртуальных деталей | MAKSCHUK | SolidWorks | 10 | 15.02.2013 13:53 |
LISP & VBA. Передача данных. | Кулик Алексей aka kpblc | Готовые программы | 8 | 29.06.2009 22:16 |
Запуск Lisp команды в новом документе | BlackHarp | LISP | 1 | 26.03.2009 23:06 |
загрузка DOS прог через LISP | Gaa | LISP | 15 | 12.08.2005 19:19 |