shanoi(s(0),A,B,C,[mv(A,C)]). shanoi(s(s(X)),A,B,C,M) :- N1=s(X), shanoi(N1,A,C,B,M1), shanoi(N1,B,A,C,M2), append(M1,[mv(A,C)],T), append(T,M2,M). append([],L,L). append([H|L],L1,[H|R]) :- append(L,L1,R).