Witam,
Mam za zadanie napisać dwie wersje funkcji, która usuwa powtarzające się, kolejne elementy z listy, np. [1,1,2,2,2,3,4,2,2] = [1,2,3,4,2] korzystając z foldr (pierwsza wersja) i foldl (druga wersja). Potem w miarę możliwości zapisać tą funkcję bezpunktowo. Nie mam zielonego pojęcia jak to zrobić. Bardzo proszę o pomoc.
Haskell usuwanie powtarzających elementów z listy
-
- Użytkownik
- Posty: 7
- Rejestracja: 9 lip 2009, o 11:56
- Płeć: Mężczyzna
- Podziękował: 1 raz
-
- Użytkownik
- Posty: 26
- Rejestracja: 20 sty 2009, o 17:55
- Płeć: Mężczyzna
- Podziękował: 6 razy
- Pomógł: 3 razy
Haskell usuwanie powtarzających elementów z listy
Kod: Zaznacz cały
unique xs = foldr step [] xs
where step x [] = [x]
step x xs@(x':_) =
if x == x'
then xs
else x:xs
-
- Użytkownik
- Posty: 7
- Rejestracja: 9 lip 2009, o 11:56
- Płeć: Mężczyzna
- Podziękował: 1 raz