7.11 Tabling predicate reference
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • Tabled execution (SLG resolution)
        • Tabling predicate reference
          • table/1
          • tnot/1
          • not_exists/1
          • tabled_call/1
          • current_table/2
          • untable/1
          • abolish_all_tables/0
          • abolish_private_tables/0
          • abolish_shared_tables/0
          • abolish_table_subgoals/1
          • abolish_module_tables/1
          • abolish_nonincremental_tables/0
          • abolish_nonincremental_tables/1
    • Packages
Availability:built-in
Sourceuntable(:Specification)
Remove the tables and tabling instrumentation for the specified predicates. Specification is compatible with table/1, although tabling with answer subsumption may be removed using a name/arity specification. The untable/1 predicate is first of all intended for examining the effect of various tabling scenarios on a particuar program interactively from the toplevel.

Note that although using untable/1 followed by table/1 may be used to flush all tables associated with the given predicate(s), flushing tables should be done using one of the table abolish predicates both for better performance and compatibility with other Prolog implementations: abolish_all_tables/0, abolish_private_tables/0, abolish_shared_tables/0, abolish_module_tables/1 or abolish_table_subgoals/1. For example, to remove all tables for p/3 , run the goal below. The predicate functor/3 may be used to create a head term from a given name and arity.

?- abolish_table_subgoals(p(_,_,_)).