- 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
- The SWI-Prolog syntax
- Rational trees (cyclic terms)
- Just-in-time clause indexing
- Wide character support
- System limits
- SWI-Prolog and 64-bit machines
- Binary compatibility
- Reference manual
2.7 Online Help
2.7.1 library(help): Text based manual
This module provides help/1 and apropos/1 that give help on a topic or searches the manual for relevant topics.
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
- 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.
2.7.2 library(explain): Describe Prolog Terms
library(explain) describes prolog-terms. The most
useful functionality is its cross-referencing function.
?- explain(subset(_,_)). "subset(_, _)" is a compound term 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 PceEmacs can jump to definitions and gxref/0 can be used for an overview of dependencies.
- 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.
The explaination is a list of elements that is printed using