- Documentation
- Reference manual
- Packages
- A C++ interface to SWI-Prolog
- A C++ interface to SWI-Prolog (Version 2)
- The class PlTerm (version 2)
- Constructors (version 2)
- Overview of accessing and changing values (version 2)
- Converting PlTerm to native C and C++ types (version 2)
- Unification (version 2)
- Comparison (version 2)
- Analysing compound terms (version 2)
- Miscellaneous (version 2)
- The class PlTermString (version 2)
- The class PlCodeList (version 2)
- The class PlCharList (version 2)
- The class PlCompound (version 2)
- The class PlTail (version 2)
- The class PlTerm (version 2)
- A C++ interface to SWI-Prolog (Version 2)
- A C++ interface to SWI-Prolog
2.10.6 Analysing compound terms (version 2)
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.