Did you know ...
Search Documentation:
Overview
HOME
DOWNLOAD
SWI-Prolog
Sources/building
Docker images
Add-ons
Browse GIT
DOCUMENTATION
Manual
Packages
FAQ
Command line
PlDoc
Bluffers
▶
Prolog syntax
PceEmacs
HTML generation
License
Publications
Rev 7 Extensions
TUTORIALS
Beginner
▶
Getting started
Learn Prolog Now!
Simply Logical
Debugger
Development tools
Advanced
▶
Modules
Grammars (DCGs)
clp(fd)
Printing messages
PlDoc
Web applications
▶
Web applications
Let's Encrypt!
Pengines
Semantic web
▶
ClioPatria
RDF namespaces
Graphics
▶
XPCE
GUI options
Machine learning
▶
Probabilistic Logic Programming
External collections
▶
Meta level tutorials
For packagers
▶
Linux packages
COMMUNITY
IRC
Forum & mailing list
Blog
News
Report a bug
Submit a patch
Submit an add-on
Roadmap (on GitHub)
External links
Contributing
Code of Conduct
Contributors
SWI-Prolog items
COMMERCIAL
WIKI
Login
View changes
Sandbox
Wiki help
All tags
Documentation
Reference manual
Introduction
Overview
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
Loading and running projects
Environment Control (Prolog flags)
An overview of hook predicates
Automatic loading of libraries
The SWI-Prolog syntax
Rational trees (cyclic terms)
Just-in-time clause indexing
Wide character support
System limits
SWI-Prolog and 32-bit machines
Binary compatibility
Initialising and Managing a Prolog Project
Built-in Predicates
SWI-Prolog extensions
Modules
Tabled execution (SLG resolution)
Constraint Logic Programming
CHR: Constraint Handling Rules
Multithreaded applications
Coroutining using Prolog engines
Foreign Language Interface
Using SWI-Prolog in your browser (WASM)
Deploying applications
Packs: community add-ons
The SWI-Prolog library
Hackers corner
Compatibility with other Prolog dialects
Glossary of Terms
SWI-Prolog License Conditions and Tools
Summary
Bibliography
Packages
2
Overview
Section Index
2.1
Getting started quickly
2.1.1
Starting SWI-Prolog
2.1.1.1
Starting SWI-Prolog on Unix
2.1.1.2
Starting SWI-Prolog on Windows
2.1.2
Adding rules from the console
2.1.3
Executing a query
2.1.4
Examining and modifying your program
2.1.5
Stopping Prolog
2.2
The user's initialisation file
2.3
Initialisation files and goals
2.4
Command line options
2.4.1
Informational command line options
2.4.2
Command line options for running Prolog
2.4.3
Controlling the stack sizes
2.4.4
Running goals from the command line
2.4.5
Compilation options
2.4.6
Maintenance options
2.5
UI Themes
2.5.1
Status of theme support
2.6
GNU Emacs Interface
2.7
Online Help
2.7.1
library(help): Text based manual
2.7.2
library(explain): Describe Prolog Terms
2.8
Command line history
2.9
Reuse of top-level bindings
2.10
Overview of the Debugger
2.10.1
The Byrd Box Model And Ports
2.10.2
Trace Mode Example
2.10.3
Trace Mode Options: leash/1 and visible/1
2.10.4
Trace Mode Commands When Paused
2.10.4.1
Control Flow Commands
2.10.4.2
Informational Commands
2.10.4.3
Formatting Commands
2.10.5
Trace Mode vs. Trace Point
2.10.6
Spy Points and Debug Mode
2.10.7
Breakpoints
2.10.8
Command Line Debugger Summary
2.10.8.1
Trace Mode
2.10.8.2
Trace Points
2.11
Loading and running projects
2.11.1
Running an application
2.11.1.1
Using PrologScript
2.11.1.2
Creating a shell script
2.11.1.3
Creating a saved state
2.11.1.4
Compilation using the -c command line option
2.11.1.5
SWI-Prolog app scripts
2.12
Environment Control (Prolog flags)
2.13
An overview of hook predicates
2.14
Automatic loading of libraries
2.15
The SWI-Prolog syntax
2.15.1
ISO Syntax Support
2.15.1.1
Processor Character Set
2.15.1.2
Nested comments
2.15.1.3
Character Escape Syntax
2.15.1.4
Syntax for non-decimal numbers
2.15.1.5
Using digit groups in large integers
2.15.1.6
Rational number syntax
2.15.1.7
NaN and Infinity floats and their syntax
2.15.1.8
Force only underscore to introduce a variable
2.15.1.9
Unicode Prolog source
2.15.1.10
Singleton variable checking
2.16
Rational trees (cyclic terms)
2.17
Just-in-time clause indexing
2.17.1
Deep indexing
2.17.2
Future directions
2.17.3
Indexing for body code
2.17.4
Indexing and portability
2.18
Wide character support
2.18.1
Wide character encodings on streams
2.18.1.1
BOM: Byte Order Mark
2.19
System limits
2.19.1
Limits on memory areas
2.19.1.1
The heap
2.19.2
Other Limits
2.19.3
Reserved Names
2.20
SWI-Prolog and 32-bit machines
2.21
Binary compatibility