A The SWI-Prolog library

This chapter documents the SWI-Prolog library. As SWI-Prolog provides auto-loading, there is little difference between library predicates and built-in predicates. Part of the library is therefore documented in the rest of the manual. Library predicates differ from built-in predicates in the following ways:

The documentation of the library has just started. Material from the standard packages should be moved here, some material from other parts of the manual should be moved too and various libraries are not documented at all.


Section Index


A.1 library(aggregate): Aggregation operators on backtrackable predicates
A.2 library(apply): Apply predicates on a list
A.3 library(assoc): Association lists
A.4 library(broadcast): Broadcast and receive event notifications
A.5 library(charsio): I/O on Lists of Character Codes
A.6 library(check): Elementary completeness checks
A.7 library(clpfd): Constraint Logic Programming over Finite Domains
A.8 library(clpqr): Constraint Logic Programming over Rationals and Reals
A.8.1 Solver predicates
A.8.2 Syntax of the predicate arguments
A.8.3 Use of unification
A.8.4 Non-linear constraints
A.8.5 Status and known problems
A.9 library(csv): Process CSV (Comma-Separated Values) data
A.10 library(debug): Print debug messages and test assertions
A.11 library(gensym): Generate unique identifiers
A.12 library(lists): List Manipulation
A.13 library(nb_set): Non-backtrackable set
A.14 library(www_browser): Activating your Web-browser
A.15 library(option): Option list processing
A.16 library(optparse): command line parsing
A.16.1 Notes and tips
A.17 library(ordsets): Ordered set manipulation
A.18 library(pairs): Operations on key-value lists
A.19 library(pio): Pure I/O
A.19.1 library(pure_input): Pure Input from files
A.20 library(predicate_options): Declare option-processing of predicates
A.20.1 The strength and weakness of predicate options
A.20.2 Options as arguments or environment?
A.20.3 Improving on the current situation
A.20.3.1 Options as types
A.20.3.2 Reflective access to options
A.21 library(prolog_pack): A package manager for Prolog
A.22 library(prolog_xref): Cross-reference data collection library
A.22.1 Extending the library
A.23 library(random): Random numbers
A.24 library(readutil): Reading lines, streams and files
A.25 library(record): Access named fields in a term
A.26 library(registry): Manipulating the Windows registry
A.27 library(simplex): Solve linear programming problems
A.27.1 Example 1
A.27.2 Example 2
A.27.3 Example 3
A.28 library(thread_pool): Resource bounded thread management
A.29 library(ugraphs): Unweighted Graphs
A.30 library(url): Analysing and constructing URL
A.31 library(varnumbers): Utilities for numbered terms