#include <quintus/quintus.h> QP_qid QP_open_query(pred_ref, arg1,...,arg255) QP_pred_ref pred_ref;
Initiates a nondeterminate Prolog query.
The first argument passed to
QP_query() is a reference to the
Prolog predicate to be called.
QP_query() accepts between 0 and
255 arguments after its first argument. Any arguments after the first
represent parameters to be passed to and from the Prolog predicate.
For the types of arguments that may be passed between C and Prolog predicates,
The arguments passed to
QP_open_query() are identical to those that
would be passed to
not compute a solution to the query. Its effect is to prepare Prolog
for the computation of solutions to the query, which must be initiated
QP_next_solution(). For consistency checking,
QP_open_query() returns a
QP_qid, which represents the Prolog
query. The type definition for
QP_qid is found in the file
by a call to
QP_open_query() must be passed to each call to
QP_next_solution() for that query, as well as to
QP_close_query() when terminating the query.
When requesting solutions from an open nondeterminate query, input and
output parameters are not passed. The effect of
QP_open_query() is to
pass inputs to Prolog, which subsequently maintains them. It also tells
Prolog where storage for outputs has been reserved. This storage will
be written to when solutions are returned.