- Documentation
- Reference manual
- Packages
- A C++ interface to SWI-Prolog
- A C++ interface to SWI-Prolog
- Overview of accessing and changing values
- Converting PlTerm to native C and C++ types
- Unification
- Comparison
- Analysing compound terms
- Miscellaneous
- The class PlTerm_string
- The class PlCodeList
- The class PlCharList
- The class PlCompound
- The class PlTerm_tail
- The class PlTermv
- The class PlAtom - Supporting Prolog constants
- Classes for the recorded database: PlRecord and PlRecordExternalCopy
- Overview of accessing and changing values
- A C++ interface to SWI-Prolog
- A C++ interface to SWI-Prolog
1.11.4 Analysing compound terms
Compound terms can be viewed as an array of terms with a name and
arity (length). This view is expressed by overloading the
operator.
[]
A type_error is raised if the argument is not compound
and a
domain_error if the index is out of range.
In addition, the following functions are defined:
- PlTerm PlTerm::operator[](int arg)
- If the
PlTermis a compound term and arg is between 1 and the arity of the term, return a newPlTermrepresenting the arg-th argument of the term. IfPlTermis not compound, atype_erroris raised. Id arg is out of range, adomain_erroris raised. Please note the counting from 1 which is consistent to Prolog's arg/3 predicate, but inconsistent to C's normal view on an array. See also classPlCompound. The following example tests x to represent a term with first-argument an atom or string equal tognat...., if ( x[1] == "gnat" ) ... - const char * PlTerm::name()
- Return a
const char *holding the name of the functor of the compound term. Raises atype_errorif the argument is not compound. - size_t PlTerm::arity()
- Returns the arity of the compound term. Raises a
type_errorif the argument is not compound.