So entfernen Sie alle Duplikate in einer Liste mithilfe des Schemas (nur abstrakte Listenfunktionen zulässig)
Ich weiß, wie man das rekursiv schreibt.
(define (removed2 lst)
(cond
[(empty? lst) empty]
[(not (member? (first lst) (rest lst)))
(cons (first lst) (removed2 (rest lst)))]
[else (removed2 (rest lst))]))
so (remove2 (liste 1 1 1 2 2 3 3 3 3 3 3)) ergibt (liste 1 2 3)
Wie kann man es jedoch nur mit abstrakten Funktionen (Filter, Foldr, Map und Build-Liste) umschreiben?
Ich habe versucht, Filter zu verwenden, aber es funktioniert einfach nicht.