Primitives on tables

A data area, called the table area, is used to store tabled calls and their answers. The following predicate initializes the table area.
      initialize_table
Tabled subgoals and answers are accumulated in the table area, until the table area is explicitly initialized.

Tabled calls are stored in a hashtable, called the subgoal table, and for each tabled call and its variants, a hashtable, called the answer table, is used to store the answers for the call. The bucket size for the subgoal table is initialized to 9001. In order to change or to access this size, use the following built-in predicate:

      subgoal_table_size(SubgoalTableSize)
which sets the size when SubgoalTableSize is an integer, and gets the current size when SubgoalTableSize is a variable.

The following two built-ins are provided for fetching answers from the table.

Neng-Fa Zhou 2013-01-25