|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Есть ли в lisp тип данных аналог Map
Регистрация: 30.06.2023
Сообщений: 43
|
||
Просмотров: 850
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Точечные пары? В списке первый элемент подсписка у тебя будет "ключом" (за уникальностью будешь сам следить, учти!), а получение - через assoc.
P.S. В C# это скорее будет словарем, КМК
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 30.06.2023
Сообщений: 43
|
да, только в lisp это одни элемент
Спасибо, а не подскажите такого понятия как массив нет в Lisp? Т.е., чтобы порядковый номер элемента сделать ключем, но при этом должна быть возможность записи/чтения в любую позицию |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
лисп - это вложенные списки данных. И хотя есть методы работы через индексы (vl-position, vl-remove и т.д.) - по факту внутри это преобразуется в линейный поиск по связанному списку с первого элемента, т.е. операция сложности O(n) -> где n - количество элементов в списке. Т.е. если хотите программировать на лиспе, то отвыкайте от стандартных подходов к коду через массивы и т.п. - или скорость работы программ слегка огорчит)
|
|||
![]() |
|
||||
Регистрация: 30.06.2023
Сообщений: 43
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
тестируйте) создайте тестовый пример, заполните список значениями и проверьте производительность. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Кто сказал? Вторым элементов в точечной паре может быть список.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
кстати, в том же словаре в Net тоже не все гладко в плане производительности - так как в качестве хэша используется 4-байтный int, то не исключено возникновение коллизий: на разные значения ключей один и тот же хэш - и тогда внутри словаря образуются те же связанные списки, начало которых "привязано" к общему значению хэша. Поэтому можно только предполагать о фактическом быстродействии кода до реального тестового прогона)
----- добавлено через ~28 мин. ----- и опять же, быстродействие кода надо рассматривать в контексте применения - сколько данных будет туда загружено, какая допустимая задержка.. для того же пользовательского интерфейса общая задержка выполнения кода в 200..300мс большинство даже не заметят, имхо) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Если говорить про лисп - то это чушь! Сделай (entget (car (entsel))) и укажи любую полилинию увидишь повторяющиеся ключи.
Я тебе не зря сказал, что за уникальностью ключей будешь следить самостоятельно.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |
Извличение данных с помощью lisp | zmejsan | AutoCAD | 7 | 04.03.2016 11:50 |
Почему в lisp отсутствует аналог функции (arxload ...) для .NET сборок. | Pastor | LISP | 16 | 17.11.2010 13:15 |
Аналог функции EVAL (LISP) в Exele | kp+ | LISP | 11 | 01.04.2010 16:52 |
LISP & VBA. Передача данных. | Кулик Алексей aka kpblc | Готовые программы | 8 | 29.06.2009 22:16 |