self(Self)
Returns the object that has received the message under processing. Note that this predicate implies an instantiation between its argument and the corresponding implicit context argument in the predicate containing the call. This instantiation occurs at the clause head, not at the clause body.
self(?object_identifier)
(none)
test :- self(Self), % after compilation, the write/1 call write('executing a method in behalf of '), % will be the first condition on the writeq(Self), nl. % clause body