Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [XLISP] Найти элементы, встречающиеся в списке, не менее n раз 
:(
    Опции темы
lenochka90
Дата 20.9.2010, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



помогите пожалуйста!!!
Определите функцию, зависящую от двух аргументов u и n, которая по данному списку u строит список его элементов, встречающихся в нем не менее n раз.
PM MAIL   Вверх
Void
Дата 20.9.2010, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

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



Какой диалект Лиспа, какие ограничения на используемые средства, что пробовали и почему не получилось?
Вот вам на Common Lisp с хэш-таблицей и loop, но преподаватель едва ли обрадуется:
Код
(defun repeating-elements (u n)
    (let ((counters (make-hash-table :test 'equal)))
        (progn
            (loop for x in u do
                (incf (gethash x counters 0)))
            (loop for x being each hash-key of counters using (hash-value count)
                when (>= count n) collect x))))

Код
> (setq s '('cat 'dog 'horse 'cat 'pig 'cat 'dog))
('CAT 'DOG 'HORSE 'CAT 'PIG 'CAT 'DOG)
> (repeating-elements s 3)
('CAT)
> (repeating-elements s 2)
('DOG 'CAT)
> (repeating-elements s 1)
('PIG 'HORSE 'DOG 'CAT)



--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
lenochka90
Дата 21.9.2010, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо, а как для XLISP это можно сделать? я даже понятия не имею с чего начать.
PM MAIL   Вверх
_sg
Дата 25.4.2014, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

(defun drop<n (w n &aux (v (remove-duplicates w)))
  (remove-if #'(lambda (a) (< (count a w) n)) v))
 
> (drop<n '(40 2 8 9 4 2 8 9 4 1 4 1 2 8 7 9 7) 2)
(4 1 2 8 9 7)

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

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

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


 




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


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

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