sender(Sender)
Returns the object that has sent 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.
sender(?object_identifier)
(none)
test :- sender(Sender), % after compilation, the write/1 call write('executing a method to answer a message sent by '), % will be the first condition on the writeq(Sender), nl. % clause body