I have a simple Prolog source code (Hanoi.pl) containing the code for solving the Hanoi Towers puzzle:
hanoi( N ):-
move( N, left, middle, 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 ):-
write( 'move a disk from ' ),
write( X ),
write( ' to ' ),
writeln( Y ).
This is the C++ file I have written in VS2008 that should call hanoi(5) and pass the results of Hanoi.pl back to VS2008:
#include <iostream>
using namespace std;
#include "SWI-cpp.h"
#include "SWI-Prolog.h"
predicate_t phanoi;
term_t t0;
int main(int argc, char** argv)
{
long n = 5;
int rval;
PL_put_integer( t0, n );
phanoi = PL_predicate( "hanoi", 1, NULL );
rval = PL_call_predicate( NULL, PL_Q_NORMAL, phanoi, t0 );
system( "PAUSE" );
}
How can I consult my Prolog source code (Hanoi.pl) from within my C++ code? Not from the Command Prompt - from the code, something like include or consult or compile?
Many thanks,