Номера позиций повторяющихся элементов списка - Страница 2
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Номера позиций повторяющихся элементов списка

Номера позиций повторяющихся элементов списка

Ответ
Поиск в этой теме
Непрочитано 27.02.2006, 11:39
Номера позиций повторяющихся элементов списка
CB
 
Конструирование в области нефтеразведки
 
Гомель
Регистрация: 10.02.2006
Сообщений: 321

Подскажите пожалуйста как можно определить номера (индексы)
повторяющихся элементов списка. Например в списке
(49 52 46 50 53 130 128 131 130 128 130 131 130) элемент '130
повторяется 4 раза. Хотелось бы получить
(130 . (5 8 10 12)), где (5 8 10 12) номера элемента '130 в списке.
Спасибо!
Просмотров: 9414
 
Автор темы   Непрочитано 27.02.2006, 18:03
#21
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


А после небольшой доработки кода Елпанов Евгений
получилось вообще то что надо
Код:
[Выделить все]
[color=blue]setq lst '(49 52 46 50 53 130 128 131 130 128 130 131 130))

(mapcar '(lambda (X Y) 
(cons X (list
  (cond 
    ((not lst) nil) 
    ((= (car lst) X) (cons n (test X (cdr lst) (1+ Y)))) 
    (t (test X (cdr lst) (1+ Y))) 
  ) 
)
              )
               )
'(130 128) '(0 0)
)[/color]

Еще раз благодарю.
RS: объясните что это за штука такая -  рекурсия
CB вне форума  
 
Непрочитано 27.02.2006, 19:29
#22
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от CB
А после небольшой доработки кода Елпанов Евгений
Раз уж меня начали дорабатывать, решил и сам выдать свой вариант...
PS.
>CB Твой вариант никогда не увидит первый элемент списка!
Код:
[Выделить все]
(mapcar(function(lambda (X)(list X (test X lst 0))))'(130 128))
Елпанов Евгений вне форума  
 
Автор темы   Непрочитано 28.02.2006, 09:23
#23
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Извините Евгений. Конечно же никто вас не собирался
"дорабатывать" . Просто поспешил , не разобравшись с кодом,
хотя к нужному результату пришел чуть позже, но слово не воробей...
Код:
[Выделить все]
(mapcar '(lambda (X) (cons X (list (test X win 0) ) ) ) '(130 128) )
[/i] [/quote]
Спасибо.
CB вне форума  
 
Непрочитано 28.02.2006, 09:26
#24
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от CB
Предыдущей темой от меня почему то народ не заинтересовался,
поэтому эта тема - как бы продолжение той.
Ответил тебе в предыдущей теме
Елпанов Евгений вне форума  
 
Непрочитано 02.03.2006, 17:11
#25
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450


> СВ : Насчет рекурсии - см. http://www.autocad.ru/cgi-bin/f1/board.cgi?t=25113OT
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Номера позиций повторяющихся элементов списка

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск