Circular Lists- back to content

		?- circular([a,b,c,d],R).

circular(L,R):- circ(L,L,R). circ(_,[],_). circ([H|T],[_|Rest],R):- append(T,[H],R),write(R),nl,circ(R,Rest,R1). Take the list [a,b,c,d] and put the first element at the end. Do the same with the resulting list R (R=[b,c,d,a]) When do we know how to stop? We introduce another variable which we initiliaze by [a,b,c,d]. Each time we obtain a new list we take one element from it. We stop when this list is [].