#!/usr/bin/perl
use
strict;
use
warnings;
my
$prolog
= Prolog->new(
<<'END_PROLOG');
hanoi(N) :-
move(N, left, center, right).
move(0, _, _, _) :- !.
move(N,A,B,C) :-
M is N - 1,
move(M,A,C,B),
inform(A,B),
move(M,C,B,A).
inform(X,Y) :-
print("Move a disc from the "),
print(X),
print(" pole to the "),
print(Y),
println(" pole").
END_PROLOG
$prolog
->
do
(
'hanoi(4)'
);