built-in predicate
extends_object/2-3
Description
extends_object(Prototype, Parent)
extends_object(Prototype, Parent, Scope)
Enumerates, by backtracking, all pairs of objects such that the first
one extends the second. The relation scope is represented by the atoms
public
, protected
, and private
.
Modes and number of proofs
extends_object(?object_identifier, ?object_identifier) - zero_or_more
extends_object(?object_identifier, ?object_identifier, ?scope) - zero_or_more
Errors
Prototype
is neither a variable nor a valid object identifier:type_error(object_identifier, Prototype)
Parent
is neither a variable nor a valid object identifier:type_error(object_identifier, Parent)
Scope
is neither a variable nor an atom:type_error(atom, Scope)
Scope
is an atom but an invalid entity scope:domain_error(scope, Scope)
Examples
% enumerate objects derived from the state_space prototype:
| ?- extends_object(Object, state_space).
% enumerate objects publicly derived from the list prototype:
| ?- extends_object(Object, list, public).