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

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

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

Задача:

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

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

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

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


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

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

11   голосов , оценка 3.727 из 5
Похожие ответы