QP_unify()
#include <quintus/quintus.h> int QP_unify(term1, term2) QP_term_ref term1; QP_term_ref term2;
Unify two Prolog terms.
QP_unify()
unifies the two terms
referenced by term1 and term2. Both should be
initialized references. If the unification succeeds, the function
returns QP_SUCCESS
, otherwise it returns QP_FAILURE
. If
the unification results in any bindings then the bindings are trailed. If
Prolog backtracks over the foreign function that called
QP_unify()
then the bindings are undone.
c_unify(term1, term2)
is equivalent to the usual
Prolog builtin =/2
, but it returns a third argument, which is
an integer indicating success or failure.
foo.plforeign(c_unify, c, c_unify(+term, +term, [-integer])).
foo.c#include <quintus/quintus.h> long int c_unify(t1, t2); QP_term_ref t1, t2; { return QP_unify(t1, t2); }
=/2