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