Определите функцию, зависящую от одного аргумента, которая по данному списку формирует список его элементов - Lisp

Узнай цену своей работы

Формулировка задачи:

Задача:

Определите функцию, зависящую от одного аргумента, которая по данному списку формирует список его элементов, встречающихся в нем более одного раза. Задача вроде простенькая, изначально сделал через if, это не устроило. Сказали не использовать if, lambda. Прошу помощи, по другому не представляю написание задачки. Мало-ли, вдруг нужен первоначальный код. Заранее, благодарю за помощь.
Листинг программы
  1. (defun F (L &optional acc)
  2. (if L
  3. ((lambda (head tail)
  4. (F
  5. tail
  6. (if (member head acc) acc
  7. (if (member head tail)
  8. (cons head acc)
  9. acc))))
  10. (car L)
  11. (cdr L))
  12. (reverse acc)))

Решение задачи: «Определите функцию, зависящую от одного аргумента, которая по данному списку формирует список его элементов»

textual
Листинг программы
  1. (defn f (l)
  2.     (defn go (l r)
  3.         (def h (car l) t (cdr l))
  4.         (cond (null? l) r
  5.               (and (elem h t) (not (elem h r))) (go t (cons h r))
  6.               (go t r)))
  7.     (go (flatten l) nil))
  8.  
  9. (printLn (f '(1 1 2 2 (3 2 2 4 5 5) 6 7 8)))
  10.  
  11. ........
  12.  
  13. (5 2 1)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.727 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы