|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
LISP Упорядочивание списков вида ' ((a b) (c d) ... (x y))
Регистрация: 11.12.2009
Сообщений: 2
|
||
Просмотров: 5100
|
|
||||
проектирование железных дорог Регистрация: 12.04.2010
Самара
Сообщений: 60
![]() |
Может чуть не по теме но создавать новую не хочется.
Есть список типа ((a b) (c d) (e f)) . Функция (reverse) расставляет элементы в обратном порядке ((e f) (c d) (a b)), НО при (nth 0) все равно возвращает (a b). Можно это как то победить? Или может кто подскажет как добавлять элемент в список чтобы он становился не первым (cons)? |
|||
![]() |
|
||||
проектирование железных дорог Регистрация: 12.04.2010
Самара
Сообщений: 60
![]() |
Спасибо. пробовал только первый вариант и он работает!
А можно тогда мне новенькому пояснить почему 1 вариант работает а Код:
И раз уж Вы откликнулись может подскажите как можно обращаться к конкретному элементу (я про то можно ли каждому элемента списка задать свое имя)? |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
1. У функции nth 2 аргумента - номер позиции и список - вы ее вызываете с одним.
2. Сугубо ИХМО - если в программе используется nth значит она хреново (с точки зрения лиспа) написана. p.s. в лиспе не принято индексировать элемент списка через его адрес - для этого там есть свои методы - ассоциативные списки и пр. - список - это НЕИЗМЕНЯЕМАЯ структура (в отличие от массива).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
К конкретному элементу можно обращаться по-разному: через nth, через assoc, еще несколько вариантов можно придумать... Все зависит от задачи.
> Дима_ : может, наоборот? Массив более-менее статичная структура, а список - весьма и весьма динамическая? Хотя, может, под структурой мы понимаем нечто разное? ![]()
__________________
(/= RegDate StartReadDate) |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
то лиспер - скажите мне хоть одну функцию (или попробуйте написать сами) которая изменяет список?
п.с. - чтоб сразу было понятно - я сохраняю ссылку на список в переменной x (и еще нескольких) - покажите функцию которой можно передать x, а она изменит его (в том числе и во всех переменных).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
проектирование железных дорог Регистрация: 12.04.2010
Самара
Сообщений: 60
![]() |
Ну давайте тогда на примере:
Код:
|
|||
![]() |
|
||||
Ubivec81, функция никогда(на сколько мне известно) не изменяет свой аргумент, а лишь выполняет какое-то действие с ним, и чтобы использовать результат функции в дальнейшем не однократно, надо этот результат куда-нибудь записать, например в переменную, т.е.
Код:
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
![]() |
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
Disney, строго говоря, это возможно, если использовать вместо setq не менее интересную set
![]() ![]()
__________________
(/= RegDate StartReadDate) |
|||
![]() |
|
||||
проектирование железных дорог Регистрация: 12.04.2010
Самара
Сообщений: 60
![]() |
Цитата:
Или все же если писать в дальнейшем Код:
Последний раз редактировалось Ubivec81, 25.05.2011 в 12:40. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Я считаю Вы заблуждаетесь - возможно лишь затереть определенное имя и назначить ему новое значение (что через setq, что через set). С удовольствием посмотрю опровержение в виде кода из #10.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
проектирование железных дорог Регистрация: 12.04.2010
Самара
Сообщений: 60
![]() |
Ну да! с этим я разобрался! Спасибо господа!!!
Тогда может еще подскажите как в моем коде сделать цикл создания списка без Код:
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запуск Lisp команды в новом документе | BlackHarp | LISP | 1 | 26.03.2009 23:06 |
АА2008 Перенос вида на лист | xag | Вертикальные решения на базе AutoCAD | 7 | 12.11.2008 11:47 |
LISP на _purge | Малюк | LISP | 12 | 23.12.2007 18:15 |
Подшивки,блок идентификатор,марка вида | wtl® | AutoCAD | 5 | 18.10.2006 23:20 |
загрузка DOS прог через LISP | Gaa | LISP | 15 | 12.08.2005 19:19 |