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.