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.