Witam, mam do napisania takie zadanie:
Napisz kilka następujących predykatów, które operują na listach w Prologu:
czy_lista(Obiekt) — prawdziwy, jeśli Obiekt jest listą; splaszcz(Lista, ListaSplaszczona) — spłaszcza listę (potocznie: usuwa z niej wszystkie wewnętrzne nawiasy kwadratowe) (wskazówka: można użyć poprzedniego predykatu); zakres(Pocz, Kon, Krok, Lista). — generuje Listę liczb z podanego zakresu, z podanym krokiem; prefiks(Lista, Prefiks) — generuje prefiksy danej Listy; sufiks(Lista, Sufiks) — generuje sufiksy danej Listy; podlista(Lista, Podlista) — generuje podlisty (bez dziur) danej Listy (wskazówka: można użyć jednego z dwóch poprzednich predykatów — lub obu); unikalne(Lista, NowaLista) — generuje NowąListę złożoną z tych samych elementów, co Lista, ale bez powtórzeń; zliczWyst(Lista, Histogram) — generuje Histogram będący listą list postaci [atom, liczebność], dla każdego atomu w Liście (patrz też przykład na dole) (wskazówka: można użyć poprzedniego predykatu oraz innych pomocniczych).
Poradziłem sobie ze wszystkim predykatami oprócz zliczWyst(Lista,Histogram). Tak ma wyglądać wywołanie i wynik :
?- zliczWyst([a, b, c, a, d, b, e, f, a, g], L).
L = c, 1], [d, 1], [b, 2], [e, 1], [f, 1], [a, 3], [g, 1]] .
Jak się do tego zabrać używając predykatu unikalne?