% Dinko Korunic, (c) 2001 % drugi labos iz Prologa staviNaKraj(X, Lista, NovaLista):- povezi(Lista, X, NovaLista). posljednji1(Clan, Lista):- povezi(X, [Clan], Lista). posljednji2([X], [X]). posljednji2(Clan, [_|Rep]):- posljednji(Clan, Rep). okreni([], []). okreni([Glava|Rep], Lista):- povezi(NovaLista, [Glava], Lista), okreni(Rep, NovaLista). rotirajLijevo(Lista1, Lista2):- povezi([Element], Lista, Lista1), povezi(Lista, [Element], Lista2). rotirajDesno(Lista1, Lista2):- rotirajLijevo(Lista2, Lista1). podskup([], _). podskup([Glava|Rep], Skup):- obrisi(Glava, Skup, Ostatak), podskup(Rep, Ostatak). moze_uzeti(stanje(_, _, _, moze), []). moze_uzeti(S, [H|T]):- potez(S, H, S1), moze_uzeti(S1, T). izravnaj([], []). izravnaj([Glava|Rep], Ravna):- izravnaj(Glava, Lista1), izravnaj(Rep, Lista2), povezi(Lista1, Lista2, Ravna). izravnaj(Glava, Ravna):- povezi([Glava], [], Ravna).