The predicates described in this section were introduced in early implementations of Prolog to provide efficient means of performing operations on large quantities of data. The introduction of indexed dynamic predicates have rendered these predicates obsolete, and the sole purpose of providing them is to support existing code. There is no reason whatsoever to use them in new code.
These predicates store arbitrary terms in the database without interfering with the clauses that make up the program. The terms that are stored in this way can subsequently be retrieved via the key on which they were stored. Many terms may be stored on the same key, and they can be individually accessed by pattern matching. Alternatively, access can be achieved via a special identifier, which uniquely identifies each recorded term and which is returned when the term is stored.
recorded(
?Key,
?Term,
?Ref)
obsolescentrecorda(
+Key,
?Term,
-Ref)
obsolescentrecordz(
+Key,
?Term,
-Ref)
obsolescentrecorda/3
, except that the new term becomes the
last item for the key Key.
current_key(
?KeyName,
?KeyTerm)
obsolescent