Section "atomic"
The mapping to classes is lean, in that only Prolog variables and
Prolog structures have their own classes. They can be accessed
directly through these classes and their exposed constructors and
fields. Otherwise, the objects form the host language are used to
represent what remains as Prolog atomics.
Prolog atoms are simply mapped to host language strings. No atom
table is maintained that would need garbage collection on our
side. This does not imply that there is no predicate table
maintained by the Prolog system. Among the Prolog atomics are
Prolog references, which are everything that is neither a Prolog
atom nor a Prolog number.
The following atomic API calls are provided:
- is_atom(T): host language
- Check whether the object T is an atom.
- is_number(T): host language
- Check whether the object T is a number.
- unify(S, T): host language
- Determine whether the two terms S and T unify.
- equal_term(S, T): host language
- Determine whether the two terms S and T are syntactically
equivalent.
- compare_term(S, T): host language
- Return the syntactic relationship between the two terms S and
T.
- is_integer(T): host language
- Check whether the object T is an integer.
- is_float(T): host language
- Check whether the object T is a float.
- is_infinite(T): host language
- Check whether an object T is an infinite.
- narrow_float(T): host language
- Return the Prolog number T narrowed to a float.
- norm_float(T): host language
- Norm a host float T to a Prolog float.