Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сформировать новій список рекурсивноы 
:(
    Опции темы
Aerobus
Дата 10.6.2009, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.6.2009

Репутация: нет
Всего: нет



Господа, строго не пинайте. В Lispe ноль по Фарингейту.
Вопрос такой Есть список, необходимо рекурсией исключить все повторы в списке и на выходе сформировать список без повторяющихся элементов.
С уважением к сообществу.
Поможите кто может. Или ткните носом в пример.
PM MAIL   Вверх
VH_
Дата 10.6.2009, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 31.10.2006

Репутация: 10
Всего: 11



Накопление с конца:
Код
(defun F (L)
 (if L
  ((lambda (elem result)
    (if (member elem result)
     result
     (cons elem result)))
   (car L)
   (F (cdr L)))))

В русском написании Фаренгейт (Fahrenheit). Ноль по Фаренгейту - это минус 17.78 по Цельсию (прочный лед :) ?).
Можно (CommonLISP и дружественные диалекты) накопление с начала:
Код
(defun F (L &optional (acc nil))
 (if (null L)
  (reverse acc)
  (F
   (cdr L)
   (if (member (car L) acc)
    acc
    (cons (car L) acc)))))


Это сообщение отредактировал(а) VH_ - 10.6.2009, 18:08
PM MAIL   Вверх
Aerobus
Дата 11.6.2009, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.6.2009

Репутация: нет
Всего: нет



2 VH_
Огромнейшее человеческое спасибо!!!  smile 
PM MAIL   Вверх
Aerobus
Дата 11.6.2009, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.6.2009

Репутация: нет
Всего: нет



Ээээээ.... Ответ правильный. Вопрос не правильный.   smile 
Надо оставить в списке только повторяющиеся.  smile 
PM MAIL   Вверх
VH_
Дата 11.6.2009, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 31.10.2006

Репутация: 10
Всего: 11



Код
(defun F (L &optional (acc nil))
 (if (null L)
  (reverse acc)
  ((lambda (elem tail)
    (cond
     ((member elem tail) (F tail (cons elem acc)))
     ((member elem acc) (F tail (cons elem acc)))
     (T (F tail acc))))
   (car L)
   (cdr L))))

PM MAIL   Вверх
Aerobus
Дата 11.6.2009, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 10.6.2009

Репутация: нет
Всего: нет



 smile  smile пасиба. 
PM MAIL   Вверх
_sg
Дата 25.4.2014, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 16.5.2007

Репутация: 2
Всего: 2



как вариант:
Код

(defun occur-more-than-once (w &aux (v (remove-duplicates w)))
  (loop for a in v when (> (count a w) 1) collect a))

> (occur-more-than-once '(a a b a c b c a b b d a d))
(C B A D)

--------------------
vk.com/ansicommonlisp
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума LISP
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Lisp — это целое семейство языков. Всегда указывайте в теме используемый диалект (Common Lisp, Scheme и т.д.).
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LISP | Следующая тема »


 




[ Время генерации скрипта: 0.0446 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.