Накопление с конца:
(defun F (L)
(if L
((lambda (elem result)
(if (member elem result)
result
(cons elem result)))
(car L)
(F (cdr L)))))
Накопление сначала (CommonLISP и дружественные диалекты):
(defun F (L &optional (acc nil))
(if (null L)
(reverse acc)
(F
(cdr L)
(if (member (car L) acc)
acc
(cons (car L) acc)))))
|