- Reference manual
- Getting started quickly
- The user's initialisation file
- Initialisation files and goals
- Command line options
- UI Themes
- GNU Emacs Interface
- Online Help
- Command line history
- Reuse of top-level bindings
- Overview of the Debugger
- Environment Control (Prolog flags)
- An overview of hook predicates
- Automatic loading of libraries
- Packs: community add-ons
- Garbage Collection
- The SWI-Prolog syntax
- Rational trees (cyclic terms)
- Just-in-time clause indexing
- Wide character support
- System limits
- SWI-Prolog and 64-bit machines
- Reference manual
By default the result of help/1
is sent through a pager such as
less. This behaviour is controlled by the following:
- The Prolog flag
help_pager, which can be set to one of the following values:
- Never use a pager.
- Use default behaviour. This tries to determine whether Prolog is running
interactively in an environment that allows for a pager. If so it
examines the environment variable
PAGERor otherwise tries to find the
- A Callable term is interpreted as
program_name(Arg, ...). For example,
less('-r')would be the default. Note that the program name can be an absolute path if single quotes are used.
- Show help for What. What is a term that describes
topics(s)to give help for. Notations for What are:
- This ambiguous form is most commonly used and shows all matching
documents. For example:
- Give help on predicates with matching Name/Arity. Arity may be unbound.
- Give help on the matching DCG rule (non-terminal)
- Give help on the matching Prolog arithmetic functions.
- Give help on the matching C interface function
- Show the section from the manual with matching Label.
If an exact match fails this predicates attempts fuzzy matching and, when successful, display the results headed by a warning that the matches are based on fuzzy matching.
If possible, the results are sent through a pager such as the
lessprogram. This behaviour is controlled by the Prolog flag
help_pager. See section level documentation.
- See also
- apropos/1 for searching the manual names and summaries.
- Hook called to display the extracted HTML document. If this hook fails the HTML is rendered to the console as plain text using html_text/2.
- Print objects from the manual whose name or summary match with
Query. Query takes one of the following forms:
- Find objects matching Text and filter the results by Type.
Type matching is a case intensitive prefix match.
Defined types are
non_terminal. For example:
?- apropos(c:close). ?- apropos(f:min).
- Text is broken into tokens. A topic matches if all tokens appear in the name or summary of the topic. Matching is case insensitive. Results are ordered depending on the quality of the match.
library(explain) describes prolog-terms. The most
useful functionality is its cross-referencing function.
?- explain(subset(_,_)). "subset(_, _)" is a compound term Referenced from 2-th clause of lists:subset/2 Referenced from 46-th clause of prolog_xref:imported/3 Referenced from 68-th clause of prolog_xref:imported/3 lists:subset/2 is a predicate defined in /staff/jan/lib/pl-5.6.17/library/lists.pl:307 Referenced from 2-th clause of lists:subset/2 Possibly referenced from 2-th clause of lists:subset/2
Note that the help-tool for XPCE provides a nice graphical cross-referencer.
- Give an explanation on Term. The argument may be any Prolog
data object. If the argument is an atom, a term of the form
Name/Arityor a term of the form
Module:Name/Arity, explain/1 describes the predicate as well as possible references to it. See also gxref/0.
- [nondet]explain(@Term, -Explanation)
- True when Explanation is an explanation of Term.