[ Dynamic Predicates | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]
retract_all(+Head)
Succeeds if all the clauses whose heads match Head are successfully removed
from the database.
- +Head
- Atom, variable or compound term.
Description
Retracts from the database all clauses whose heads match the argument.
The argument must be sufficiently instantiated otherwise an error is
signalled. retract_all/1 never fails. The clauses are not reasserted
when backtracking through the call of retract_all/1.
The functor and the arity of Head must be that of a predicate declared
as dynamic.
retract_all/1 satisfies the logical update semantics. Using it to
retract all the clauses of a predicate will not, in any way, affect
previous calls to the predicate.
Fail Conditions
None
Resatisfiable
No
Exceptions
- (4) instantiation fault
- Head is not instantiated
- (5) type error
- Head is not a callable term
- (63) procedure not dynamic
- Procedure is not dynamic
- (70) accessing an undefined dynamic procedure
- Procedure is undefined
Examples
Success:
[eclipse]: assert(city(munich)), assert(city(london)).
yes.
[eclipse]: retract_all(city(_)).
yes.
[eclipse]: city(X).
no (more) solution.
Error:
retract_all(X). (Error 4).
retract_all("x"). (Error 5).
% if h/0 is defined, but not as dynamic..
retract_all(h). (Error 63).
retract_all(z/0). (Error 70).
See Also
dynamic / 1, asserta / 1, retract / 1