Как удалить все дубликаты в списке по схеме (разрешены только функции абстрактного списка)

Я знаю, как написать это рекурсивно.

(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)?

Я пытался использовать фильтр, но он просто нет работа.

Ответы на вопрос(2)

Ваш ответ на вопрос