|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как заменить значение элемента в списке?
Регистрация: 24.01.2012
Сообщений: 84
|
||
Просмотров: 7807
|
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
В списке невозможно заменить элемент - никак - можно создать новый измененный список (ну и как вариант сохранить его под тем-же именем - но это отдельная тема). Сделать это можно например
Код:
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 28.09.2010
Сообщений: 55
|
Кривизна это все! Действительно ,напрямую нельзя заменить элемент списка по номеру. Autolist позорище!!! В нем вообще нет массивов как таковых. Жалею что очень зря когда-то начал изучать этот недоязык. Надо было на Си, ++, #, VB, не важно, но только не на этом самогонном агрегате
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Еще варианты
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 28.09.2010
Сообщений: 55
|
меня всегда раздражала функция subst. Она заменяла элемент по значению, но при этом все! элементы из списка с указанным значением. Ладно бы, если только первый найденный элемент с указанным значением.
Здесь наверное такая логика у разработчиков. Списки, это не для списков чисел int или double. Это для примитивов. А примитивы не могут быть одинаковыми по определению, так как у них есть уникальные идентификационные метки что ли. И если функцией subst перекидывать примитивы в списке примитивов, то таких накладок как с числами (или строками) не будет. А то ой! функция заменила не только то, что нужно, но и то, чего совсем не надо было заменять. не, ну конечно можно городить такое громодье (к VVA и остальным обращаюсь), но по-моему это не совсем тот инструмент. Не для чисел точно. Последний раз редактировалось Иванов Дмитрий, 15.11.2015 в 23:05. Причина: дополнение |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Если интересуют причины - могу пояснить - в структуре списка не подразумевается такой сущности как порядковый номер т.к. на любой список может ссылаться другая "голова" (cons x ...) - которая будет представлять из себя как-бы новый независимый список, по той-же причине он не изменяем. Все приведенные выше функции действительно являются "мракобесием", но не по причине, что в лиспе это не реализовано, а наоборот, когда пытаются зубы через ж..у лечить - получается вот такая кривизна. Лисп язык функциональный - соответственно и подразумевает работу с функциональными структурами данных (про то, что в автолиспе они не шибко на уровне реализованы - это да) - Вы на трамвае руль видели? И чего его там никто поставить не догадался? Им же без руля даже с рельс не съехать - чего Вы чертежи для поворота трамвайных колес не предлагаете.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 28.09.2010
Сообщений: 55
|
Димон_, ну в общем если говорить абстракциями, то писать код на решение системы линейных алгебраических уравнений на АВТОЛИСПЕ это и есть разработка трамвайного руля.
Или так: Автолисп - средство для оперирования примитивами Автокада. Можно повесить в рамке в кабинете труда. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
А по сравнению с чем? Если с вышеприведенными с(++,#), vb - я у последних вижу преимущество только в присутствии уже готовых библиотек "из коробки", если-же мы подберем задачу, где коробочный функционал одинаковый (как вариант - у обоих нет) - сильно не уверен - что выиграют по написанию кода - по скорости да, но будет-ли практическая разница.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
|
|||
![]() |
|
||||
Offtop: Подозреваю, что если бы в своё время к AutoCAD'у не добавили AutoLisp, а добавили например C/C++, то количество тех, кто писал бы под AutoCAD уменьшилось бы в разы, если не в десятки раз. Показательно, что тех кто пишет с использованием ObjectARX (т.е. на C++) можно пересчитать по пальцам.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
... и те только потому, что есть функционал который не реализован через другие программные интерфейсы...
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Инженер-конструктор Регистрация: 13.10.2011
Москва
Сообщений: 2,359
|
Цитата:
Код:
![]() ----- добавлено через ~2 мин. ----- Цитата:
|
|||
![]() |
|
||||
Пастух Регистрация: 16.07.2012
Питер
Сообщений: 318
|
Цитата:
Скажите, уважаемый. Сколько времени вам понадобится, чтобы на ваших пресловутых НЕ позорных языках, написать функцию схожую, например, с vlax-curve-getclosestpointto или того более vlax-curve-isperiodic? Или вы любите отверткой гвозди заворачивать?
__________________
Автоматизация должна быть автоматической. |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
чтобы не воспринимать лисп как нечто несуразное - надо на нем достаточно регулярно писать.. полгодика назад пробовал на лиспе писать, в какой мере азы освоил.. даже до специфических вещей типа реакторов дошел в силу необходимости.. но потом ушел обратно в NetApi / Interop и сейчас для меня лисп снова фактически "чужой"...
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Autolisp Acad2008 Каким образом заменить значение атрибута в динамическом блоке | Zaghim | LISP | 12 | 14.03.2023 10:19 |
вывод значения элемента массива параметров | sms | ANSYS | 30 | 25.06.2018 11:41 |
Проблемы с расчетом Ж/Б каркаса в ANSYS | derik | ANSYS | 457 | 04.07.2017 16:16 |
DCL урок на примере. | Pavel_GP | Программирование | 22 | 03.11.2011 13:20 |
ГОСТ Р 53231-2008 | UnyqUm | Поиск литературы, чертежей, моделей и прочих материалов | 5 | 15.09.2009 14:41 |