4.14.2 The recorded database
- recorda(+Key, +Term, -Reference)
- Assert Term in the recorded database under key Key. Key is a small integer (range min_tagged_integer ...max_tagged_integer, atom or compound term. If the key is a compound term, only the name and arity define the key. Reference is unified with an opaque handle to the record (see erase/1).
- recorda(+Key, +Term)
- Equivalent to
recorda(Key, Term, _)
. - recordz(+Key, +Term, -Reference)
- Equivalent to recorda/3, but puts the Term at the tail of the terms recorded under Key.
- recordz(+Key, +Term)
- Equivalent to
recordz(Key, Term, _)
. - recorded(?Key, ?Value, ?Reference)
- True if Value is recorded under Key and has the
given database Reference. If Reference is given,
this predicate is semi-deterministic. Otherwise, it must be considered
non-deterministic. If neither Reference nor Key is
given, the triples are generated as in the code snippet below.88Note
that, without a given Key, some implementations return
triples in the order defined by recorda/2
and recordz/2.
See also current_key/1.
current_key(Key), recorded(Key, Value, Reference)
- recorded(+Key, -Value)
- Equivalent to
recorded(Key, Value, _)
. - erase(+Reference)
- Erase a record or clause from the database. Reference is a db-reference returned by recorda/3, recordz/3 or recorded/3, clause/3, assert/2, asserta/2 or assertz/2. Fail silently if the referenced object no longer exists. Notably, if multiple threads attempt to erase the same clause one will succeed and the others will fail.
- instance(+Reference, -Term)
- Unify Term with the referenced clause or database record.
Unit clauses are represented as Head :-
true
.