QP_is_*()
#include <quintus/quintus.h> int QP_is_variable(term) QP_term_ref term;
int QP_is_atom(term) QP_term_ref term;
int QP_is_integer(term) QP_term_ref term;
int QP_is_float(term) QP_term_ref term;
int QP_is_compound(term) QP_term_ref term;
int QP_is_list(term) QP_term_ref term;
int QP_is_db_reference(term) QP_term_ref term;
int QP_is_atomic(term) QP_term_ref term;
int QP_is_number(term) QP_term_ref term;
These C functions and macros can be used to test the type of the Prolog terms passed to C through the foreign interface.
QP_is_variable()
QP_is_atom()
QP_is_integer()
QP_is_float()
QP_is_compound()
QP_is_list()
QP_is_db_reference()
QP_is_atomic()
QP_is_number()
print_type()
is a C function that prints the type of
the Prolog term passed to it.
foo.plforeign(print_type, c, print_type(+term)).
foo.c#include <quintus/quintus.h> void print_type(term) QP_term_ref term; { if (QP_is_atom(term)) { QP_printf("Term is an atom\n"); } else if (QP_is_integer(term)) { QP_printf("Term is an integer\n"); } else if (QP_is_float(term)) { QP_printf("Term is a float\n"); } else if (QP_is_variable(term)) { QP_printf("Term is a variable\n"); } else if (QP_is_db_reference(term)) { QP_printf("Term is a database reference\n"); } else if (QP_is_compound(term)) { if (QP_is_list(term)) { QP_printf("Term is a list\n"); } else { QP_printf("Term is a compound term\n"); } } else { QP_printf("Unrecognized term\n"); } }
QP_get_*()
, QP_put_*()
, QP_new_term_ref()