The proto-object object
provides basic methods that are available
to all other objects by delegation:
super(
?Object)
super(
Object)
are translated to the
universal method super/2
.
sub(
?Object)
self(
?Self)
object(
?Object)
One of the defined objects in the system is Object.
dynamic
Self is a dynamic object.
static
Self is a static object.
dynamic
?Name/?Arity
Name/Arity is a dynamic method of Self.
static
?Name/?Arity
Name/Arity is a static method of Self.
new(
?Object)
Creates a new dynamic Object. Self will be the prototype of
Object. Object can be a compound term, an atom,
or a variable. In the last case the method generates a unique name
for Object.
+SomeObject :: new(
?NewObject,
+Supers)
NewObject is created with Supers specifying the super
objects (prototypes). Supers is a list containing super
specifications. A super specification is either an object identifier or
a pair Object-NotInheritList where NotInheritList
specifies methods not to inherit from Object. NewObject
could be an atom, variable, or compound term whose
arguments are distinct variables.
instance(
?Instance)
Creates a new instance Instance. Self will be the class of
Instance. Instance can be a compound term, an
atom, or a variable. In the last case the method generates a
unique name for Instance.
has_instance(
?Instance)
Self has the instance Instance.
has_attribute(
?AttributeSpec)
Self has the attribute AttributeSpec, locally defined or
inherited. AttributeSpec is on the format
Name
/
Arity.
get(
+Attribute)
set(
+Attribute)
assert(
+Fact)
assert(
+Fact,
-Ref)
asserta(
+Fact)
asserta(
+Fact,
-Ref)
assertz(
+Fact)
assertz(
+Fact,
-Ref)
Asserts a new Fact in Self. If Self is static,
the name and arity of Fact must be declared as a dynamic
method. asserta
places Fact before any old facts.
The other forms place it after any old facts. A pointer to the
asserted fact is returned in the optional argument
Ref, and can be used by the Prolog built-in predicates
erase/1
and instance/2
.
retract(
+Fact)
Retracts a Fact from Self. If Self is static,
the name and arity of Fact must be declared as a dynamic
method.
update(
+Fact)
Replaces the first fact with the same name and arity as
Fact in Self by Fact. If Self is static,
the name and arity of Fact must be declared as a dynamic
method.
retractall(
?Head)
Removes facts from Self that unify with Head.
If Self is static, the name and arity of Fact
must be declared as a dynamic method.
abolish
Abolishes Self if dynamic.
augment(
?ObjectBody)
augmenta(
?ObjectBody)
augmentz(
?ObjectBody)
ObjectBody, having the form { sentence-1 & ... &
sentence-n }, is added to Self. augmenta
places the new
clauses before any old clauses. The other forms place it
after any old clauses.