|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
![]() |
Поиск в этой теме |
|
||||
Регистрация: 06.04.2015
Сообщений: 2,754
|
Ну так LINQом в .net это делается очень элегантно наподобия запроса к базе данных. При этом это очень быстро работает со всеми внутренними нетовскими структурами массивов, т.е. и со словарями и с простыми списками и с очередями и со стопками.
|
|||
![]() |
|
||||
Регистрация: 03.02.2017
Сообщений: 61
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,407
|
Цитата:
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 06.04.2015
Сообщений: 2,754
|
Здесь можно посмотреть. Там и примеры и куски кода
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
----- добавлено через ~3 мин. ----- а передача данных из условной Лисп-машины в .Net функцию и обратно явно будет узким местом как стык между управляемым кодом .Net и тем же ActiveX |
|||
![]() |
|
||||
Регистрация: 06.04.2015
Сообщений: 2,754
|
Цитата:
----- добавлено через 51 сек. ----- Цитата:
----- добавлено через ~9 мин. ----- Прошу прощения немного не ту ссылку сделал. Здесь можно посмотреть как использовать внутренние команды через обращение к командной строке. Последний раз редактировалось румата, 19.10.2022 в 13:12. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Имхо, рациональнее Lisp-подобные функции использовать в следующих случаях: 1. Диалоги (причем помимо диалога можно там же и с БД работать или иным внешним хранилищем. и т.п.). И возвращать лишь конечный результат. 2. Обработка больших объемов информации по некоторому конечному набору критериев (пускай с самой БД dwg чертежа уже внутри .Net метода работает). 3. Реализация функционала, отсутствующего в самом Lisp (по сути альтернатива подключаемым внешним библиотекам). |
|||
![]() |
|
||||
Регистрация: 06.04.2015
Сообщений: 2,754
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 03.02.2017
Сообщений: 61
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
точнее - это код .Net, помеченный атрибутом LispFunction для возможности взаимодействия с Lisp-кодом путем встраивания дополнительных метаданных в сборку. Иначе как акад узнает - что там программист решил реализовывать в сборке, если он (акад) сможет из метаданных получить только название метода без дополнительной информации.
А обмен большим объемом данных через аргументы не является узким местом, если эти данные передаются в виде ссылки на объект (объект класса списка и т.д.). Тогда эта ссылка на объект, переданная через стек, копируется во внутренний указатель метода (поведение по умолчанию) - а работа внутри функции ведется по факту с исходным объектом. А если нужно переупаковывать из одного формата данных в другой - там каждый вызов метода будет вызывать расход ресурсов. |
|||
![]() |
|
||||
Сергей812,
Передача большого списка (десятки тысяч элементов и больше) из VisualLisp в lisp-функцию, созданную при помощи .NET очень не рекомендую. Замечал очень большие задержки именно на этапе передачи списка. Причем это не только в .NET, но и в чистом ObjectARX.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
насколько понимаю, список лиспа являет однонаправленным списком и передается значение первого элемента (в отличие от указателя на начало области памяти массива, как в "классических" языках программирования). И, соответственно, вместо передачи напрямую в ObjectARX/.Net списка как ссылки на коллекцию происходит проход по всему списку.
|
|||
![]() |
|
||||
Регистрация: 06.04.2015
Сообщений: 2,754
|
|
|||
![]() |
|
||||
Регистрация: 18.12.2010
Сообщений: 5,107
|
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Можно ли на языке Python сделать графическую программу по анализу тензора напряжений? | PETR_THE_GREAT | Программирование | 4 | 17.02.2022 16:15 |
Можно ли использовать для шпилек резьбовые штанги вместо арматуры? | Drake | Железобетонные конструкции | 9 | 22.06.2021 03:38 |
Можно ли для отделки пола в Технических помещениях торгового центра использовать линолеум Г1В2Д2Т2РП1 ? | drill_man | Поиск литературы, чертежей, моделей и прочих материалов | 32 | 06.04.2013 15:54 |
Какую версию ObjectARX с каким AutoCAD можно можно использовать? | nav3000 | Программирование | 3 | 01.12.2012 21:37 |
Можно ли использовать формы VBA для запуска lisp команд? | Kserg_nn | LISP | 4 | 05.02.2010 20:00 |