Как удалить все дубликаты в списке по схеме (разрешены только функции абстрактного списка)
Я знаю, как написать это рекурсивно.
(define (removed2 lst)
(cond
[(empty? lst) empty]
[(not (member? (first lst) (rest lst)))
(cons (first lst) (removed2 (rest lst)))]
[else (removed2 (rest lst))]))
так (удалено2 (список 1 1 1 2 2 2 3 3 3 3 3 3)) дает (список 1 2 3)
Тем не менее, как вы переписываете его, используя только абстрактные функции (filter, foldr, map и build-list)?
Я пытался использовать фильтр, но он просто нет работа.