Availability:built-in
 [ISO]dynamic :PredicateIndicator, 
...Informs the interpreter that the definition of the predicate(s) may 
change during execution (using assert/1 
and/or retract/1). 
In the multithreaded version, the clauses of dynamic predicates are 
shared between the threads. The directive thread_local/1 
provides an alternative where each thread has its own clause list for 
the predicate. Dynamic predicates can be turned into static ones using
compile_predicates/1.
[ISO]dynamic :PredicateIndicator, 
...Informs the interpreter that the definition of the predicate(s) may 
change during execution (using assert/1 
and/or retract/1). 
In the multithreaded version, the clauses of dynamic predicates are 
shared between the threads. The directive thread_local/1 
provides an alternative where each thread has its own clause list for 
the predicate. Dynamic predicates can be turned into static ones using
compile_predicates/1.