From ca4aaf44de8b9ff7eaf29264104db80ef36a92a8 Mon Sep 17 00:00:00 2001 From: Markus Triska Date: Thu, 26 Jan 2023 00:20:53 +0100 Subject: [PATCH] DOC: initial documentation for library(tabling) in DocLog format --- src/lib/tabling.pl | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) 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. -- 2.54.0