|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
LISP : проверка уникальности элемента в списке
Регистрация: 30.03.2012
Сообщений: 101
|
||
Просмотров: 6653
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
см. member, assoc, vl-remove, vl-remove-if, vl-remove-if-not и т.п.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 30.03.2012
Сообщений: 101
|
Ну список функций то у меня перед глазами ) еще mapcar и apply есть ) но как-то не клеится
если делать последовательный member то проверка будет только для хвоста списка, то есть упускается начало исходного списка assoc не подходит потому что список просто а не из пар (1 2 3 4 5 2) vl-remove не подходит потому что удаляет все вхождения не проверяя уникальные ли они ну а тест-функция для vl-remove-if, vl-remove-if-not есть как раз искомая функция ) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 30.03.2012
Сообщений: 101
|
Виноват-с, не совсем правильно сформулировал. Проверить надо присутствуют ли в списке уникальные элементы. То есть надо не взять какой то элемент и проверить присутствует ли он в списке, а взять каждый элемент списка и проверить не входит ли он в него всего 1 раз.
Есть идея, конечно, проверять после vl-remove на четность количество оставшихся элементов.. но как то не коряво это кажется |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Разбираться мне некогда, попробуй по аналогии:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Одна из моих старых функций. Предназначалась, в том числе, и для работы с вещественными числами. поэтому используется сравнение до 1e-6
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Я сделал то, что написанно Вами - функция проверяет (то есть возращает false либо true - в автолисп терминологии T nil) в зависимости от наличия дублирующих элементов - то есть если спиок "уникальный" - все элементы по 1 разу - вернет T (можете проверить), а Ваш '(3 10 3 10 1) - как бы уже дважды не уникален - и естественно возращает nil.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 30.03.2012
Сообщений: 101
|
Дима_, я же поправился. Нужно чтобы функция возвращала T если хоть один элемент присутствует меньше 2ух раз в списке
То есть если в списке какое то число встречается единожды, то это допустим T, а если там только числа, которые повторяются 2 и более раз, то nil. Будьте любезны немного подправить. Вам я думаю несложно ) А я в ваш код смотрю и только диву даюсь какие в LISPе формы допустимы ) А в принципе можете и не переделывать.. Вариант от Vov.Ka - то, что надо! Всем спасибо! Последний раз редактировалось WhiteShark, 15.03.2013 в 15:25. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Lisp. Проблема после копирование стиля несущего элемента (ADT) из файла | молодой человек | LISP | 1 | 02.05.2011 22:56 |
Lisp. Редактирование элемента во внешней ссылке без команды _refedit | молодой человек | LISP | 8 | 08.04.2011 23:00 |
Проверка прочности ж/б элемента | Dimitrius | Расчетные программы | 2 | 03.07.2007 22:10 |
Проверка нажатия CTRL в LISP в фоновом режиме(не grread) | BH | LISP | 10 | 22.08.2006 22:23 |
lisp : проверка наличия типа линии в файле | Кулик Алексей aka kpblc | LISP | 4 | 21.06.2005 08:04 |