first (default) or last
and determines whether the new handler is expected as first or last.Defined channels are described below. The Channel argument is the name of the term listed below. The arguments are added as additional arguments to the given Closure.
gc thread.
This specific channel is used by clause_info/5
to reclaim source layout of reclaimed clauses. User applications should
typically use the PredicateIndicator channel.library(prolog_breakpoints)thread_exit channel that is
also used by the at_exit(Closure) option of
thread_create/3.incremental and monotonic dynamic
predicates. Below is an example illustrating events from changing a
dynamic predicate.
:- dynamic p/1.
:- prolog_listen(p/1, updated(p/1)).
updated(Pred, Action, Context) :-
format('Updated ~p: ~p ~p~n', [Pred, Action, Context]).
?- assert(p(a)). Updated p/1: assertz <clause>(0x55db261709d0) ?- retractall(p(_)). Updated p/1: retractall start(user:p(_12294)) Updated p/1: retract <clause>(0x55db261719c0) Updated p/1: retractall end(user:p(_12294))
retractall. The
context argument is start(Head) or end(Head).asserta,
assertz or retract. Context is the involved
clause. See transaction/1
and snapshot/1.