Object::Predicate {Proxy}::Predicate
Sends a message to an object. The message argument must match a public predicate of the receiver object. When the message corresponds to a protected or private predicate, the call is only valid if the sender matches the predicate scope container.
The {Proxy}::Predicate
syntax construct allows simplified access to parametric object proxies. Its operational semantics is equivalent to the goal conjunction ({Proxy}, Proxy::Predicate)
. I.e. Proxy
is proved as a plain Prolog goal and, if successful, the goal term is used as a parametric object identifier. Exceptions thrown when proving Proxy
are handled by the ::/2
control construct. This syntax construct supports backtracking over the {Proxy}
goal.
+object_identifier::+callable {+object_identifier}::+callable
instantiation_error
type_error(object_identifier, Object)
type_error(callable, Predicate)
permission_error(access, private_predicate, Predicate)
permission_error(access, protected_predicate, Predicate)
existence_error(predicate_declaration, Predicate)
existence_error(object, Object)
instantiation_error
type_error(object_identifier, Proxy)
existence_error(procedure, ProxyFunctor/ProxyArity)
| ?- list::member(X, [1, 2, 3]). X = 1 ; X = 2 ; X = 3 yes