Como remover todas as duplicatas em uma lista usando o esquema (somente funções de lista abstratas são permitidas)

Eu sei como escrever isso de forma recursiva.

(define (removed2 lst)
  (cond
       [(empty? lst) empty]
       [(not (member? (first lst) (rest lst)))
        (cons (first lst) (removed2 (rest lst)))]
       [else (removed2 (rest lst))]))

so (removed2 (lista 1 1 1 2 2 2 3 3 3 3 3 3)) dá (lista 1 2 3)

No entanto, como você o reescreve usando funções abstratas (filtro, dobra, mapa e lista de compilação)?

Eu tentei usar o filtro, mas simplesmente não funciona.

questionAnswers(2)

yourAnswerToTheQuestion