#include #include #define __GPROLOG_FOREIGN_STRICT__ #include "gprolog.h" int pay(char a, char b) { int payment = -1; PlTerm arg[3]; int func = Pl_Find_Atom("pay"); Pl_Query_Begin(PL_TRUE); arg[0] = Pl_Mk_Char(a); arg[1] = Pl_Mk_Char(b); arg[2] = Pl_Mk_Variable(); if (Pl_Query_Call(func, 3, arg)) { payment = Pl_Rd_Integer(arg[2]); } Pl_Query_End(PL_RECOVER); return payment; } int main(int argc, char *argv[]) { Pl_Start_Prolog(argc, argv); printf("pay: %d\n", pay('d', 'c')); Pl_Stop_Prolog(); return 0; }