diff --git a/src/lib/tabling.pl b/src/lib/tabling.pl index 94dd4238..a63dd54f 100644 --- a/src/lib/tabling.pl +++ b/src/lib/tabling.pl @@ -1,3 +1,27 @@ +/** Tabling, also called SLG resolution. + + SLG resolution is an alternative execution strategy that sometimes + helps to improve termination and performance characters of Prolog + predicates. + + To enable this execution strategy for a Prolog predicate, add a + `(table)/1` directive, using the prefix operator `table` that this + module defines. For example, to enable tabling for the predicate + `p/2`, use: + +``` +:- use_module(library(tabling)). + +:- table p/2. + +... +``` + + The possibility to apply different execution strategies is one of + the greatest attractions of pure Prolog code, and one of the + strongest arguments for keeping to the pure core of Prolog as far + as possible. +*/ :- module(tabling, [ start_tabling/2, % +Wrapper, :Worker.