From: Markus Triska Date: Wed, 25 Jan 2023 23:20:53 +0000 (+0100) Subject: DOC: initial documentation for library(tabling) in DocLog format X-Git-Tag: v0.9.2~212^2~1 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=ca4aaf44de8b9ff7eaf29264104db80ef36a92a8;p=scryer-prolog.git DOC: initial documentation for library(tabling) in DocLog format --- 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.