instance/2
instance(
+Ref,
-Term)
Unifies Term with the most general instance of the dynamic clause or recorded term indicated by the database reference Ref.
Ref must be instantiated to a database
reference to an existing clause or recorded term. instance/2
is
not sensitive to the source module and can be used to access any
clause, regardless of its module.
instantiation_error
type_error
existence_error
instance/2
ignores the module of a clause.
Because of this, accessing a clause with via instance/2
is
different from accessing it via clause/3
with a given Ref.
If the reference is to a unit-clause C, then
Term is unified with C
:- true
.
| ?- assert(foo:bar,R). R = '$ref'(771292,1) | ?- instance('$ref'(771292,1),T). T = (bar:-true) | ?- clause(H,B,'$ref'(771292,1)). no | ?- clause(foo:H,B,'$ref'(771292,1)). H = bar, B = true | ?-
clause/3
, asserta/2
, assertz/2
ref-mdb-bas