
retractall(+Head)

   Removes from the database all clauses whose heads match Head

Arguments
   Head                Atom, variable or compound term.

Type
   Dynamic Predicates

Description
   Retracts from the database all clauses whose heads match the argument.
   The argument must be sufficiently instantiated otherwise an error is
   signalled.  retractall/1 never fails.  The clauses are not reasserted
   when backtracking through the call of retractall/1.


   The functor and the arity of Head must be that of a predicate declared
   as dynamic (or implicitly declared as dynamic by asserting).


   retractall/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, i.e. they will still see all the clauses
   that existed at call time.




Modes and Determinism
   retractall(+) is det

Modules
   This predicate is sensitive to its module context (tool predicate, see @/2).

Exceptions
     4 --- Head is not instantiated
     5 --- Head is not a callable term
    63 --- Procedure is not dynamic
    70 --- Procedure is undefined

Examples
   
Success:
    [eclipse]: assert(city(munich)), assert(city(london)).
    yes.
    [eclipse]: retractall(city(_)).
    yes.
    [eclipse]: city(X).
    no (more) solution.
    [eclipse]: retractall(city(_)).
    yes.
Error:
    retractall(X).                  (Error 4).
    retractall("x").                (Error 5).


   % if h/0 is defined, but not as dynamic..
    retractall(h).                  (Error 63).

    retractall(z/0).                (Error 70).





See Also
   dynamic / 1, assert / 1, retract / 1
