Определите функцию, зависящую от одного аргумента, которая по данному списку формирует список его элементов - 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)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д