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_errortype_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_errortype_error(object_identifier, Proxy)existence_error(procedure, ProxyFunctor/ProxyArity)| ?- list::member(X, [1, 2, 3]). X = 1 ; X = 2 ; X = 3 yes