library

Prolog files

aggregate.pl  -- Aggregation operators on backtrackable predicatesShow source
aggregate/3Aggregate bindings in Goal according to Template.Source
aggregate/4Aggregate bindings in Goal according to Template.Source
aggregate_all/3Aggregate bindings in Goal according to Template.Source
aggregate_all/4Aggregate bindings in Goal according to Template.Source
foldall/4Use Folder to fold V0 to V using all answers of Goal.Source
foreach/2True when the conjunction of instances of Goal created from solutions for Generator is true.Source
free_variables/4Find free variables in bagof/setof template.Source
safe_meta/2Declare the aggregate meta-calls safe.Source
apply.pl  -- Apply predicates on a listShow source
convlist/3Similar to maplist/3, but elements for which call(Goal, ElemIn, _) fails are omitted from ListOut.Source
exclude/3Filter elements for which Goal fails.Source
include/3Filter elements for which Goal succeeds.Source
partition/4Filter elements of List according to Pred.Source
partition/5Filter List according to Pred in three sets.Source
foldl/4Fold an ensemble of m (0 <= m <= 4) lists of length n head-to-tail ("fold-left"), using columns of m list elements as arguments for Goal.
maplist/2True if Goal is successfully applied on all matching elements of the list.
scanl/4Scan an ensemble of m (0 <= m <= 4) lists of length n head-to-tail ("scan-left"), using columns of m list elements as arguments for Goal.
apply_macros.pl  -- Goal expansion rules to avoid meta-callingShow source
arithmetic.pl  -- Extensible arithmeticShow source
arithmetic_expression_value/2True when Result unifies with the arithmetic result of evaluating Expression.Source
arithmetic_function/1Declare a predicate as an arithmetic function.Source
assoc.pl  -- Binary associationsShow source
assoc_to_keys/2True if Keys is the list of keys in Assoc.Source
assoc_to_list/2Translate Assoc to a list Pairs of Key-Value pairs.Source
assoc_to_values/2True if Values is the list of values in Assoc.Source
del_assoc/4True if Key-Value is in Assoc0.Source
del_max_assoc/4True if Key-Value is in Assoc0 and Key is the greatest key.Source
del_min_assoc/4True if Key-Value is in Assoc0 and Key is the smallest key.Source
empty_assoc/1Is true if Assoc is the empty association list.Source
gen_assoc/3True if Key-Value is an association in Assoc.Source
get_assoc/3True if Key-Value is an association in Assoc.Source
get_assoc/5True if Key-Val0 is in Assoc0 and Key-Val is in Assoc.Source
is_assoc/1True if Assoc is an association list.Source
list_to_assoc/2Create an association from a list Pairs of Key-Value pairs.Source
map_assoc/2True if Pred(Value) is true for all values in Assoc.Source
map_assoc/3Map corresponding values.Source
max_assoc/3True if Key-Value is in Assoc and Key is the largest key.Source
min_assoc/3True if Key-Value is in assoc and Key is the smallest key.Source
ord_list_to_assoc/2Assoc is created from an ordered list Pairs of Key-Value pairs.Source
put_assoc/4Assoc is Assoc0, except that Key is associated with Value.Source
atom.pl  -- Operations on atomsShow source
identifier_parts/2Parts is a list of atoms that make up Identifier.Source
join_identifier_parts/3Join parts of an identifier according to Style.Source
restyle_identifier/3Restyle an identifier by extracting the alnum substrings and joining them together according to Style.Source
backcomp.pl  -- Backward compatibilityShow source
$apropos_match/2True if Needle is a sub atom of Haystack.Source
$arch/2Source
$argv/1Source
$declare_module/3Used in triple20 particle library.Source
$home/1Source
$module/2Source
$set_prompt/1Set the prompt for the toplevel.Source
$sig_atomic/1Execute Goal without processing signals.Source
$strip_module/3This used to be an internal predicate.Source
$version/1Source
C/3Used to be generated by DCG.Source
at_initialization/1Register goal only to be run if a saved state is restored.Source
call_cleanup/3Call Cleanup with an indication of the reason unified to Catcher.Source
checklist/2Source
concat/3Source
concat_atom/2Concatenate a list of atomic values to an atom.Source
concat_atom/3Concatenate a list of atomic values to an atom, inserting Separator between each consecutive elements.Source
convert_time/2Convert a time-stamp as obtained though get_time/1 into a textual representation using the C-library function ctime().Source
convert_time/8Convert a time stamp, provided by get_time/1, time_file/2, etc.Source
current_module/2True if Module is a module loaded from File.Source
current_mutex/3Source
current_thread/2Source
eval_license/0Source
export_list/2Module exports the predicates of List.Source
flush/0Source
free_variables/2Return a list of unbound variables in Term.Source
hash/1Demands PredInd to be indexed using a hash-table.Source
hash_term/2If Term is ground, Hash is unified to an integer representing a hash for Term.Source
index/1Prepare the predicate indicated by Head for multi-argument indexing.Source
merge/3Merge the ordered sets List1 and List2 into a new ordered list.Source
merge_set/3Merge the ordered sets Set1 and Set2 into a new ordered set without duplicates.Source
message_queue_size/2True if Queue holds Size terms.Source
proper_list/1Old SWI-Prolog predicate to check for a list that really ends in a [].Source
read_clause/1Source
read_clause/2Source
read_history/6Source
read_pending_input/3Source
set_base_module/1Set the default module from which we inherit.Source
setup_and_call_cleanup/3Call Cleanup once after Goal is finished.Source
setup_and_call_cleanup/4Call Cleanup once after Goal is finished, with Catcher unified to the reason.Source
string_to_atom/2Bi-directional conversion between string and atom.Source
string_to_list/2Bi-directional conversion between a string and a list of character codes.Source
sublist/3Succeeds if List2 unifies with a list holding those terms for which call(Goal, Elem) succeeds.Source
substring/4Predecessor of sub_string using 1-based Offset.Source
sumlist/2True when Sum is the list of all numbers in List.Source
thread_at_exit/1Register Goal to be called when the calling thread exits.Source
trie_insert_new/3Source
write_ln/1Source
displayq/1Write term ignoring operators and quote atoms.
feature/2Control Prolog flags.
lock_predicate/2
read_variables/2
sformat/3
base32.pl  -- Base32 encoding and decodingShow source
base32/2Translates between plaintext and base32 encoded atom or string.Source
base32//1Encode/decode list of character codes using base32.Source
base64.pl  -- Base64 encoding and decodingShow source
base64/2Equivalent to base64_encoded/3 using the options as(atom) and encoding(iso_latin_1).Source
base64_encoded/3General the base64 encoding and decoding.Source
base64url/2Translates between plaintext and base64url encoded atom or string.Source
base64//1Encode/decode list of character codes using base64.Source
base64_encoded//2Source
base64url//1Encode/decode list of character codes using Base64URL.Source
broadcast.pl  -- Event serviceShow source
broadcast/1Broadcast given event.Source
broadcast_request/1Broadcast given event till accepted.Source
listening/3returns currently open channels.Source
listen/3Open a channel for listening for events of the given `Templ'.
unlisten/1Destroy a channel.
charsio.pl  -- I/O on Lists of Character CodesShow source
atom_to_chars/2Convert Atom into a list of character codes.Source
atom_to_chars/3Convert Atom into a difference list of character codes.Source
format_to_chars/3Use format/2 to write to a list of character codes.Source
format_to_chars/4Use format/2 to write to a difference list of character codes.Source
number_to_chars/2Convert Atom into a list of character codes.Source
number_to_chars/3Convert Number into a difference list of character codes.Source
open_chars_stream/2Open Codes as an input stream.Source
read_from_chars/2Read Codes into Term.Source
read_term_from_chars/3Read Codes into Term.Source
with_output_to_chars/2Run Goal as with once/1.Source
with_output_to_chars/3Run Goal as with once/1.Source
with_output_to_chars/4Same as with_output_to_chars/3 using an explicit stream.Source
write_to_chars/2Write a term to a code list.Source
write_to_chars/3Write a term to a code list.Source
codesio.pl  -- I/O on Lists of Character CodesShow source
format_to_codes/3Use format/2 to write to a list of character codes.Source
format_to_codes/4Use format/2 to write to a difference list of character codes.Source
open_codes_stream/2Open Codes as an input stream.Source
read_from_codes/2Read Codes into Term.Source
read_term_from_codes/3Read Codes into Term.Source
with_output_to_codes/2Run Goal with as once/1.Source
with_output_to_codes/3Run Goal with as once/1.Source
with_output_to_codes/4As with_output_to_codes/3, but Stream is unified with the temporary stream.Source
write_term_to_codes/3True when Codes is a string that matches the output of write_term/3 using Options.Source
write_term_to_codes/4True when Codes\Tail is a difference list containing the character codes that matches the output of write_term/3 using Options.Source
write_to_codes/2Codes is a list of character codes produced by write/1 on Term.Source
write_to_codes/3Codes is a difference-list of character codes produced by write/1 on Term.Source
coinduction.pl  -- Co-Logic ProgrammingShow source
coinductive/1The declaration :- coinductive name/arity, ... defines predicates as coinductive.Source
csv.pl  -- Process CSV (Comma-Separated Values) dataShow source
csv_options/2Compiled is the compiled representation of the CSV processing options as they may be passed into csv//2, etc.Source
csv_read_file_row/3True when Row is a row in File.Source
csv_read_row/3Read the next CSV record from Stream and unify the result with Row.Source
csv_read_stream/3Read CSV data from Stream.Source
csv_write_stream/3Write the rows in Data to Stream.Source
csv_read_file/2Read a CSV file into a list of rows.
csv_write_file/2Write a list of Prolog terms to a CSV file.
csv//1Prolog DCG to `read/write' CSV data.
date.pl  -- Process dates and timesShow source
date_time_value/3Extract values from a date-time structure.Source
day_of_the_week/2Computes the day of the week for a given date.Source
day_of_the_year/2Computes the day of the year for a given date.Source
parse_time/2Stamp is a timestamp created from parsing Text using the representation Format.
debug.pl  -- Print debug messages and test assertionsShow source
assertion_failed/2This hook is called if the Goal of assertion/1 fails.
debug_print_hook/3Hook called by debug/3.Source
assertion/1Acts similar to C assert() macro.Source
debug/3Format a message if debug topic is enabled.Source
debug_message_context/1Specify additional context for debug messages.Source
debug/1Add/remove a topic from being printed.
debugging/1Examine debug topics.
list_debug_topics/0List currently known topics for debug/3 and their setting.
dialect.pl  -- Support multiple Prolog dialectsShow source
expects_dialect/1Tell Prolog all subsequent code to the end of the file or the next :- expects_dialect/1 directive is written for the indicated Dialect.Source
source_exports/2True if Source exports Export.Source
dicts.pl  -- Dict utilitiesShow source
dict_fill/4Implementation for the dicts_to_same_keys/3 OnEmpty closure that fills new cells with a copy of ValueIn.Source
dict_keys/2True when Keys is an ordered set of the keys appearing in Dict.Source
dict_size/2True when KeyCount is the number of keys in Dict.Source
dicts_join/3Join dicts in Dicts that have the same value for Key, provided they do not have conflicting values on other keys.Source
dicts_join/4Join two lists of dicts (Dicts1 and Dicts2) on Key.Source
dicts_same_keys/2True if List is a list of dicts that all have the same keys and Keys is an ordered set of these keys.Source
dicts_same_tag/2True when List is a list of dicts that all have the tag Tag.Source
dicts_slice/3DictsOut is a list of Dicts only containing values for Keys.Source
dicts_to_compounds/4True when Dicts and Compounds are lists of the same length and each element of Compounds is a compound term whose arguments represent the values associated with the corresponding keys in Keys.Source
dicts_to_same_keys/3DictsOut is a copy of DictsIn, where each dict contains all keys appearing in all dicts of DictsIn.Source
mapdict/2True when all dicts have the same set of keys and call(Goal, Key, V1, ...) is true for all keys in the dicts.
dif.pl  -- The dif/2 constraintShow source
dif/2Constraint that expresses that Term1 and Term2 never become identical (==/2).Source
edinburgh.pl  -- Some traditional Edinburgh predicatesShow source
fileerrors/2Query and change the fileerrors flag.Source
reconsult/1Load source file(s), wiping the old content first.Source
unknown/2Edinburgh Prolog predicate for dealing dealing with undefined procedures.Source
debug/0Switch on/off debug mode.
display/1Write a term, ignoring operators and special syntax constructs such as brace terms ({a}) and lists ([a,b,c]).
error.plShow source
gensym.pl  -- Generate unique symbolsShow source
gensym/2Generate <Base>1, <Base>2, etc atoms on each subsequent call.Source
reset_gensym/0Reset gensym for all registered keys.Source
reset_gensym/1Restart generation of identifiers from Base at <Base>1.Source
git.pl  -- Run GIT commandsShow source
git/2Run a GIT command.Source
git_branches/2True when Branches is the list of branches in the repository.Source
git_default_branch/2True when BranchName is the default branch of a repository.Source
git_default_branch/2True when BranchName is the current branch of a repository.Source
git_describe/2Describe the running version based on GIT tags and hashes.Source
git_hash/2Return the hash of the indicated object.Source
git_ls_remote/3Execute git ls-remote against the remote repository to fetch references from the remote.Source
git_ls_tree/2True when Entries is a list of entries in the the GIT repository, Each entry is a term:.Source
git_open_file/4Open the file File in the given bare GIT repository on the given branch (treeisch).Source
git_process_output/3Run a git-command and process the output with OnOutput, which is called as call(OnOutput, Stream).Source
git_remote_branches/2Exploit git_ls_remote/3 to fetch the branches from a remote repository without downloading it.Source
git_remote_url/3URL is the remote (fetch) URL for the given Remote.Source
git_shortlog/3Fetch information like the GitWeb change overview.Source
git_show/4Fetch info from a GIT commit.Source
git_tags/2True when Tags is a list of git tags defined on the repository.Source
git_tags_on_branch/3Tags is a list of tags in Branch on the GIT repository Dir, most recent tag first.Source
is_git_directory/1True if Directory is a git directory (Either checked out or bare).Source
is_git_hash/1True when Atom represents a GIT hash, i.e., a 40 digit hexadecimal string.Source
heaps.pl  -- heaps/priority queuesShow source
add_to_heap/4Adds Key with priority Priority to Heap0, constructing a new heap in Heap.Source
delete_from_heap/4Deletes Key from Heap0, leaving its priority in Priority and the resulting data structure in Heap.Source
empty_heap/1True if Heap is an empty heap.Source
get_from_heap/4Retrieves the minimum-priority pair Priority-Key from Heap0.Source
heap_size/2Determines the number of elements in Heap.Source
heap_to_list/2Constructs a list List of Priority-Element terms, ordered by (ascending) priority.Source
is_heap/1Returns true if X is a heap.Source
list_to_heap/2If List is a list of Priority-Element terms, constructs a heap out of List.Source
merge_heaps/3Merge the two heaps Heap0 and Heap1 in Heap.Source
min_of_heap/3Unifies Key with the minimum-priority element of Heap and Priority with its priority value.Source
min_of_heap/5Gets the two minimum-priority elements from Heap.Source
singleton_heap/3True if Heap is a heap with the single element Priority-Key.Source
iostream.pl  -- Utilities to deal with streamsShow source
close_any/1Execute the Close closure returned by open_any/5.Source
open_any/5Establish a stream from Specification that should be closed using Close, which can either be called or passed to close_any/1.Source
open_hook/6Open Spec in Mode, producing Stream.Source
lazy_lists.pl  -- Lazy list handlingShow source
lazy_engine_next/4Lazy list iterator for engines.Source
lazy_get_codes/4Lazy list iterator to get character codes from a stream.Source
lazy_list/2Create a lazy list from a callback.Source
lazy_list/3Create a lazy list where the next element is defined by.Source
lazy_list_iterator/4Directive to create a lazy list iterator from a predicate that gets a single next value.Source
lazy_list_length/2True if Len is the length of the materialized lazy list.Source
lazy_list_materialize/1Materialize the lazy list.Source
lazy_message_queue/4Lazy list iterator for message queues.Source
lazy_read_lines/4Lazy list iterator to read lines from Stream.Source
lazy_read_terms/4Turn a stream into a lazy list of Prolog terms.Source
lazy_findall/3True when List is a lazy list containing the instantiations for Template for each answer of Goal.
lists.pl  -- List ManipulationShow source
append/2Concatenate a list of lists.Source
append/3List1AndList2 is the concatenation of List1 and List2.Source
clumped/2Pairs is a list of Item-Count pairs that represents the run length encoding of Items.Source
delete/3Delete matching elements from a list.Source
flatten/2Is true if FlatList is a non-nested version of NestedList.Source
intersection/3True if Set3 unifies with the intersection of Set1 and Set2.Source
is_set/1True if Set is a proper list without duplicates.Source
last/2Succeeds when Last is the last element of List.Source
list_to_set/2True when Set has the same elements as List in the same order.Source
max_list/2True if Max is the largest number in List.Source
max_member/2True when Max is the largest member in the standard order of terms.Source
max_member/3True when Max is the largest member according to Pred, which must be a 2-argument callable that behaves like (@=<)/2.Source
member/2True if Elem is a member of List.Source
min_list/2True if Min is the smallest number in List.Source
min_member/2True when Min is the smallest member in the standard order of terms.Source
min_member/3True when Min is the smallest member according to Pred, which must be a 2-argument callable that behaves like (@=<)/2.Source
nextto/3True if Y directly follows X in List.Source
nth0/3True when Elem is the Index'th element of List.Source
nth0/4Select/insert element at index.Source
nth1/3Is true when Elem is the Index'th element of List.Source
nth1/4As nth0/4, but counting starts at 1.Source
numlist/3List is a list [Low, Low+1, ... High].Source
permutation/2True when Xs is a permutation of Ys.Source
prefix/2True iff Part is a leading substring of Whole.Source
proper_length/2True when Length is the number of elements in the proper list List.Source
reverse/2Is true when the elements of List2 are in reverse order compared to List1.Source
same_length/2Is true when List1 and List2 are lists with the same number of elements.Source
select/3Is true when List1, with Elem removed, results in List2.Source
select/4Select from two lists at the same position.Source
selectchk/3Semi-deterministic removal of first element in List that unifies with Elem.Source
selectchk/4Semi-deterministic version of select/4.Source
subseq/3Is true when SubList contains a subset of the elements of List in the same order and Complement contains all elements of List not in SubList, also in the order they appear in List.Source
subset/2True if all elements of SubSet belong to Set as well.Source
subtract/3Delete all elements in Delete from Set.Source
sum_list/2Sum is the result of adding all numbers in List.Source
union/3True if Set3 unifies with the union of the lists Set1 and Set2.Source
main.pl  -- Provide entry point for scriptsShow source
argv_options/3Parse command line arguments.Source
argv_options/4As argv_options/3 in guided mode, Currently this version allows parsing argument options throwing an exception rather than calling halt/1 by passing an empty list to ParseOptions.Source
argv_usage/1Use print_message/2 to print a usage message at Level.Source
cli_enable_development_system/0Re-enable the development environment.Source
cli_parse_debug_options/2Parse certain commandline options for debugging and development purposes.Source
main/0Call main/1 using the passed command-line arguments.Source
cli_debug_opt_type/3Implements opt_type/3, opt_help/2 and opt_meta/2 for debug arguments.
modules.pl  -- Module utility predicatesShow source
current_temporary_module/1True when we are executing in the given temporary module context.Source
in_temporary_module/3Run Goal on temporary loaded sources and discard the module and loaded predicates after completion.Source
occurs.pl  -- Finding and counting sub-termsShow source
contains_term/2Succeeds if Sub is contained in Term (=, deterministically).Source
contains_var/2Succeeds if Sub is contained in Term (==, deterministically).Source
free_of_term/2Succeeds of Sub does not unify to any subterm of Term.Source
free_of_var/2Succeeds of Sub is not equal (==) to any subterm of Term.Source
occurrences_of_term/3Count the number of SubTerms in Term that unify with SubTerm.Source
occurrences_of_var/3Count the number of SubTerms in Term that are equal to SubTerm.Source
sub_term/2Generates (on backtracking) all subterms of Term.Source
sub_term_shared_variables/3If Sub is a sub term of Term, Vars is bound to the list of variables in Sub that also appear outside Sub in Term.Source
sub_var/2Generates (on backtracking) all subterms (==) of Term.Source
operators.pl  -- Manage operatorsShow source
pop_operators/0Revert all changes to the operator table realised since the last push_operators/1.Source
pop_operators/1Reset operators as pushed by push_operators/2.Source
push_op/3As op/3, but this call must appear between push_operators/1 and pop_operators/0.Source
push_operators/1Installs the operators from New, where New is a list of op(Prec, Type, :Name).
option.pl  -- Option list processingShow source
dict_options/2Convert between an option list and a dictionary.Source
merge_options/3Merge two option sets.Source
meta_options/3Perform meta-expansion on options that are module-sensitive.Source
option/2Get an Option from Options.Source
option/3Get an Option from Options.Source
select_option/3Get and remove Option from Options.Source
select_option/4Get and remove Option with default value.Source
ordsets.pl  -- Ordered set manipulationShow source
is_ordset/1True if Term is an ordered set.Source
list_to_ord_set/2Transform a list into an ordered set.Source
ord_add_element/3Insert an element into the set.Source
ord_del_element/3Delete an element from an ordered set.Source
ord_disjoint/2True if Set1 and Set2 have no common elements.Source
ord_empty/1True when List is the empty ordered set.Source
ord_intersect/2True if both ordered sets have a non-empty intersection.Source
ord_intersect/3Intersection holds the common elements of Set1 and Set2.Source
ord_intersection/2Intersection of a powerset.Source
ord_intersection/3Intersection holds the common elements of Set1 and Set2.Source
ord_intersection/4Intersection and difference between two ordered sets.Source
ord_memberchk/2True if Element is a member of OrdSet, compared using ==.Source
ord_selectchk/3Selectchk/3, specialised for ordered sets.Source
ord_seteq/2True if Set1 and Set2 have the same elements.Source
ord_subset/2Is true if all elements of Sub are in Super.Source
ord_subtract/3Diff is the set holding all elements of InOSet that are not in NotInOSet.Source
ord_symdiff/3Is true when Difference is the symmetric difference of Set1 and Set2.Source
ord_union/2True if Union is the union of all elements in the superset SetOfSets.Source
ord_union/3Union is the union of Set1 and Set2.Source
ord_union/4True iff ord_union(Set1, Set2, Union) and ord_subtract(Set2, Set1, New).Source
oset.pl  -- Ordered set manipulationShow source
oset_addel/3Ordered set element addition.Source
oset_delel/3Ordered set element deletion.Source
oset_diff/3Ordered set difference.Source
oset_dint/2Distributed intersection.Source
oset_dunion/2Distributed union.Source
oset_int/3ordered set intersection.Source
oset_is/1check that OSet in correct format (standard order).Source
oset_power/2True when PSet is the powerset of Set.Source
oset_union/3Union is the union of OSet1 and OSet2.Source
pairs.pl  -- Operations on key-value listsShow source
group_pairs_by_key/2Group values with equivalent (==/2) consecutive keys.Source
map_list_to_pairs/3Create a Key-Value list by mapping each element of List.Source
pairs_keys/2Remove the values from a list of Key-Value pairs.Source
pairs_keys_values/3True if Keys holds the keys of Pairs and Values the values.Source
pairs_values/2Remove the keys from a list of Key-Value pairs.Source
transpose_pairs/2Swap Key-Value to Value-Key.Source
persistency.pl  -- Provide persistent dynamic predicatesShow source
current_persistent_predicate/1True if PI is a predicate that provides access to the persistent database DB.Source
db_assert/1Assert Term into the database and record it for persistency.Source
db_attach/2Use File as persistent database for the calling module.Source
db_attached/1True if the context module attached to the persistent database File.Source
db_detach/0Detach persistency from the calling module and delete all persistent clauses from the Prolog database.Source
db_retract/1Retract terms from the database one-by-one.Source
db_retractall/1Retract all matching facts and do the same in the database.Source
db_sync/1Synchronise database with the associated file.Source
db_sync_all/1Sync all registered databases.Source
persistent/1Declare dynamic database terms.Source
pio.pl  -- Pure I/OShow source
pprint.pl  -- Pretty Print Prolog termsShow source
print_term/2Pretty print a Prolog term.Source
predicate_options.pl  -- Access and analyse predicate optionsShow source
assert_predicate_options/4As predicate_options(:PI, +Arg, +Options).Source
check_predicate_option/3Verify predicate options at runtime.Source
check_predicate_options/0Analyse loaded program for erroneous options.Source
check_predicate_options/1Verify calls to predicates that have options in all clauses of the predicate indicated by PredicateIndicator.Source
current_option_arg/2True when Arg of PI processes predicate options.Source
current_predicate_option/3True when Arg of PI processes Option.Source
current_predicate_options/3True when Options is the current active option declaration for PI on Arg.Source
derive_predicate_options/0Derive new predicate option declarations.Source
derived_predicate_options/1Derive predicate option declarations for a module.Source
derived_predicate_options/3Derive option arguments using static analysis.Source
predicate_options/3Declare that the predicate PI processes options on Arg.Source
retractall_predicate_options/0Remove all dynamically (derived) predicate options.Source
prolog_breakpoints.pl  -- Manage Prolog break-pointsShow source
breakpoint_property/2True when Property is a property of the breakpoint Id.Source
delete_breakpoint/1Delete breakpoint with given Id.Source
set_breakpoint_condition/2Set a condition for of the breakpoint with given Id.Source
set_breakpoint/4Put a breakpoint at the indicated source-location.
prolog_clause.plShow source
prolog_code.pl  -- Utilities for reasoning about codeShow source
body_term_calls/2True when BodyTerm calls Goal.Source
extend_goal/3Extend the possibly qualified Goal0 with additional arguments from Extra.Source
head_name_arity/3Similar to functor/3, but deals with SWI-Prolog's zero-argument callable terms and avoids creating a non-callable term if Name is not an atom and Arity is zero.Source
is_control_goal/1True if Goal is a compiled Prolog control structure.Source
is_predicate_indicator/1True when Term is a predicate indicator.Source
most_general_goal/2General is the most general version of Goal.Source
pi_head/2Translate between a PredicateIndicator and a Goal term.Source
predicate_label/2Create a human-readable label for the given predicate indicator.Source
predicate_sort_key/2Key is the (module-free) name of the predicate for sorting purposes.Source
comma_list/2True if CommaList is a nested term over the ','/2 (';'/2) functor and List is a list expressing the elements of the conjunction.
mkconj/3Create a conjunction or disjunction from two terms.
prolog_colour.pl  -- Prolog syntax colouring support.Show source
prolog_colourise_query/3Colourise a query, to be executed in the context of SourceId.Source
prolog_colourise_term/4Colourise the next term on Stream.Source
syntax_colour/2True when a range classified Class must be coloured using Attributes.Source
vararg_goal_classification/3Multifile hookable classification for vararg predicates.Source
prolog_colourise_stream/3Determine colour fragments for the data on Stream.
prolog_format.pl  -- Analyse format specificationsShow source
format_spec/2Parse a format string.Source
format_types/2True when Format requires an argument list with terms of the type specified by Types.Source
format_spec//1DCG for parsing format strings.Source
prolog_pack.pl  -- A package manager for PrologShow source
pack_info/1Print more detailed information about Pack.Source
pack_install_local/3Install a number of packages in a local directory.Source
pack_list_installed/0List currently installed packages and report possible dependency issues.Source
pack_property/2True when Property is a property of an installed Pack.Source
pack_publish/2Publish a package.Source
pack_upgrade/1Upgrade Pack.Source
pack_url_file/2True if File is a unique id for the referenced pack and version.Source
pack_install/1Install one or more packs from SpecOrList.
pack_list/1Query package server and installed packages and display results.
pack_rebuild/0Rebuild possible foreign components of Pack.
pack_remove/1Remove the indicated package.
prolog_source.pl  -- Examine Prolog source-filesShow source
quasi_quotation_syntax/2True when the quasi quotation syntax Syntax can be loaded from Library.Source
xref_close_source/2Called by prolog_close_source/1 to close a source previously opened by the hook prolog:xref_open_source/2.Source
xref_open_source/2Hook to open an xref SourceID.Source
directory_source_files/3True when Files is a sorted list of Prolog source files in Dir.Source
file_alias_path/2True if file Alias points to Dir.Source
file_name_on_path/2True if OnPath a description of File based on the file search path.Source
load_quasi_quotation_syntax/2Import quasi quotation syntax Syntax from Path into the module specified by the first argument.Source
path_segments_atom/2Translate between a path represented as a/b/c and an atom representing the same path.Source
prolog_canonical_source/2Given a user-specification of a source, generate a unique and indexable identifier for it.Source
prolog_close_source/1Close a stream opened using prolog_open_source/2.Source
prolog_file_directives/3True when Directives is a list of directives that appear in the source file File.Source
prolog_open_source/2Open source with given canonical id (see prolog_canonical_source/2) and remove the #!Source
prolog_read_source_term/4Read a term from a Prolog source-file.Source
read_source_term_at_location/3Try to read a Prolog term form an arbitrary location inside a file.Source
requires_library/2known expansion hooks.Source
valid_term_position/2Check that a Term has an appropriate TermPos layout.Source
prolog_stack.pl  -- Examine the Prolog stackShow source
backtrace/1Get and print a stacktrace to the user_error stream.Source
print_last_choicepoint/0Print details on the last open choice point.Source
print_last_choicepoint/2Source
prolog_stack_frame_property/2True when Property is a property of Frame.Source
stack_guard/1Dynamic multifile hook that is normally not defined.Source
stack_guard/1Dynamic multifile predicate.Source
get_prolog_backtrace/2Obtain a backtrace from the current location.
print_prolog_backtrace/2Print a stacktrace in human readable form to Stream.
prolog_xref.pl  -- Prolog cross-referencer data collectionShow source
called_by/2If this succeeds, the cross-referencer assumes Goal may call any of the goals in ListOfCalled.Source
called_by/4True when Called is a list of callable terms called from Goal, handled by the predicate Module:Goal and executed in the context of the module Context.Source
hook/1True if Goal is a hook that is called spontaneously (e.g., from foreign code).Source
meta_goal/2Define meta-predicates.Source
xref_clean/1Reset the database for the given source.Source
xref_comment/3Is true when Source has a section comment with Title and Comment.Source
xref_comment/4Is true when Head in Source has the given PlDoc comment.Source
xref_current_source/1Check what sources have been analysed.Source
xref_defined/3Test if Goal is accessible in Source.Source
xref_definition_line/2If the 3th argument of xref_defined contains line info, return this in Line.Source
xref_done/2Cross-reference executed at Time.Source
xref_exported/2True when Source exports Head.Source
xref_hook/1Definition of known hooks.Source
xref_meta/3True when Head calls Called in Source.Source
xref_mode/3Is true when Source provides a predicate with Mode and determinism.Source
xref_module/2True if Module is defined in Source.Source
xref_op/2Give the operators active inside the module.Source
xref_option/2True when Source was processed using Option.Source
xref_prolog_flag/4True when Flag is set to Value at Line in Source.Source
xref_public_list/3Find meta-information about File.Source
xref_uses_file/3True when Source tries to load a file using Spec.Source
xref_called/3True when By is called from Called in Source.
xref_meta/2True when Called is a list of terms called from Head.
xref_public_list/4Find meta-information about File.
xref_source/1Generate the cross-reference data for Source if not already done and the source is not modified.
xref_source_file/3Find named source file from Spec, relative to Src.
pure_input.pl  -- Pure Input from files and streamsShow source
phrase_from_file/2Process the content of File using the DCG rule Grammar.Source
phrase_from_file/3As phrase_from_file/2, providing additional Options.Source
phrase_from_stream/2Run Grammer against the character codes on Stream.Source
stream_to_lazy_list/2Create a lazy list representing the character codes in Stream.Source
lazy_list_character_count//1True when CharCount is the current character count in the Lazy list.Source
lazy_list_location//1Determine current (error) location in a lazy list.Source
syntax_error//1Throw the syntax error Error at the current location of the input.Source
quasi_quotations.pl  -- Define Quasi Quotation syntaxShow source
phrase_from_quasi_quotation/2Process the quasi quotation using the DCG Grammar.Source
quasi_quotation_syntax/1Declare the predicate SyntaxName/4 to implement the the quasi quote syntax SyntaxName.Source
quasi_quotation_syntax_error/1Report syntax_error(Error) using the current location in the quasi quoted input parser.Source
with_quasi_quotation_input/3Process the quasi-quoted Content using Stream parsed by Goal.Source
random.pl  -- Random numbersShow source
maybe/0Succeed/fail with equal probability (variant of maybe/1).Source
maybe/1Succeed with probability P, fail with probability 1-P.Source
maybe/2Succeed with probability K/N (variant of maybe/1).Source
random/1Binds R to a new random float in the open interval (0.0,1.0).Source
random/3Generate a random integer or float in a range.Source
random_between/3Binds R to a random integer in [L,U] (i.e., including both L and U).Source
random_member/2X is a random member of List.Source
random_numlist/4Unify List with an ascending list of integers between L and U (inclusive).Source
random_perm2/4Does X=A,Y=B or X=B,Y=A with equal probability.Source
random_permutation/2Permutation is a random permutation of List.Source
random_select/3Randomly select or insert an element.Source
random_subseq/3Selects a random subsequence Subseq of List, with Complement containing all elements of List that were not selected.Source
randseq/3S is a list of K unique random integers in the range 1..N.Source
randset/3S is a sorted list of K unique random integers in the range 1..N.Source
setrand/1Query/set the state of the random generator.
rbtrees.pl  -- Red black treesShow source
is_rbtree/1True if Term is a valid Red-Black tree.Source
list_to_rbtree/2Tree is the red-black tree corresponding to the mapping in List, which should be a list of Key-Value pairs.Source
ord_list_to_rbtree/2Tree is the red-black tree corresponding to the mapping in list List, which should be a list of Key-Value pairs.Source
rb_apply/4If the value associated with key Key is Val0 in Tree, and if call(G,Val0,ValF) holds, then NewTree differs from Tree only in that Key is associated with value ValF in tree NewTree.Source
rb_clone/3`Clone' the red-back tree TreeIn into a new tree TreeOut with the same keys as the original but with all values set to unbound values.Source
rb_del_max/4Delete the largest element from the tree Tree, returning the key Key, the value Val associated with the key and a new tree NewTree.Source
rb_del_min/4Delete the least element from the tree Tree, returning the key Key, the value Val associated with the key and a new tree NewTree.Source
rb_delete/3Delete element with key Key from the tree Tree, returning the value Val associated with the key and a new tree NewTree.Source
rb_delete/4Same as rb_delete(Tree, Key, NewTree), but also unifies Val with the value associated with Key in Tree.Source
rb_empty/1Succeeds if Tree is an empty Red-Black tree.Source
rb_fold/4Fold the given predicate over all the key-value pairs in Tree, starting with initial state State0 and returning the final state State.Source
rb_in/3True when Key-Value is a key-value pair in red-black tree Tree.Source
rb_insert/4Add an element with key Key and Value to the tree Tree creating a new red-black tree NewTree.Source
rb_insert_new/4Add a new element with key Key and Value to the tree Tree creating a new red-black tree NewTree.Source
rb_keys/2Keys is unified with an ordered list of all keys in the Red-Black tree Tree.Source
rb_lookup/3True when Value is associated with Key in the Red-Black tree Tree.Source
rb_map/2True if call(Goal, Value) is true for all nodes in T.Source
rb_map/3For all nodes Key in the tree Tree, if the value associated with key Key is Val0 in tree Tree, and if call(G,Val0,ValF) holds, then the value associated with Key in NewTree is ValF.Source
rb_max/3Key is the maximal key in Tree, and is associated with Val.Source
rb_min/3Key is the minimum key in Tree, and is associated with Val.Source
rb_new/1Create a new Red-Black tree Tree.Source
rb_next/4Next is the next element after Key in Tree, and is associated with Val.Source
rb_partial_map/4For all nodes Key in Keys, if the value associated with key Key is Val0 in tree Tree, and if call(G,Val0,ValF) holds, then the value associated with Key in NewTree is ValF, otherwise it is the value associated with the key in Tree.Source
rb_previous/4Previous is the previous element after Key in Tree, and is associated with Val.Source
rb_size/2Size is the number of elements in Tree.Source
rb_update/4Tree NewTree is tree Tree, but with value for Key associated with NewVal.Source
rb_update/5Same as rb_update(Tree, Key, NewVal, NewTree) but also unifies OldVal with the value associated with Key in Tree.Source
rb_visit/2Pairs is an infix visit of tree Tree, where each element of Pairs is of the form Key-Value.Source
readutil.pl  -- Read utilitiesShow source
read_file_to_codes/3Read the file Spec into a list of Codes.Source
read_file_to_string/3Read the file Spec into a the string String.Source
read_file_to_terms/3Read the file Spec into a list of terms.Source
read_line_to_codes/2Read the next line of input from Stream.Source
read_line_to_codes/3Difference-list version to read an input line to a list of character codes.Source
read_line_to_string/2Read the next line from Stream into String.Source
read_stream_to_codes/2Read input from Stream to a list of character codes.
record.pl  -- Access compound arguments by nameShow source
current_record/2True if Name is the name of a record defined in the module associated with Term and Term is the user-provided record declaration.Source
current_record_predicate/2True if PI is the predicate indicator for an access predicate to Record.Source
record/1Define access predicates for a compound-term.Source
sandbox.plShow source
settings.pl  -- Setting managementShow source
convert_setting_text/3Converts from textual form to Prolog Value.Source
current_setting/1True if Setting is a currently defined setting.Source
restore_setting/1Restore the value of setting Name to its default.Source
set_setting/2Change a setting.Source
set_setting_default/2Change the default for a setting.Source
setting/2True when Name is a currently defined setting with Value.Source
setting/4Define a setting.Source
setting_property/2Query currently defined settings.Source
env/2Evaluate environment variables on behalf of arithmetic expressions.
list_settings/0List settings to current_output.
load_settings/1Load local settings from File.
save_settings/0Save modified settings to File.
shlib.pl  -- Utility library for loading foreign objects (DLLs, shared objects)Show source
compat_arch/2User definable hook to establish if Arch1 is compatible with Arch2 when running a shared object.Source
current_foreign_library/2Query currently loaded shared libraries.Source
reload_foreign_libraries/0Reload all foreign libraries loaded (after restore of a state created using qsave_program/2.Source
load_foreign_library/1Load a shared object or DLL.
unload_foreign_library/1Unload a shared object or DLL.
use_foreign_library/1Load and install a foreign library as load_foreign_library/1,2 and register the installation using initialization/2 with the option now.
solution_sequences.pl  -- Modify solution sequencesShow source
call_nth/2True when Goal succeeded for the Nth time.Source
group_by/4Group bindings of Template that have the same value for By.Source
limit/2Limit the number of solutions.Source
offset/2Ignore the first Count solutions.Source
order_by/2Order solutions according to Spec.Source
distinct/1True if Goal is true and no previous solution of Goal bound Witness to the same value.
reduced/1Similar to distinct/1, but does not guarantee unique results in return for using a limited amount of memory.
sort.plShow source
locale_sort/2Sort a list of atoms using the current locale.Source
predsort/3Sorts similar to sort/2, but determines the order of two terms by calling Compare(-Delta, +E1, +E2).Source
statistics.pl  -- Get information about resource usageShow source
statistics/0Print information about resource usage using print_message/2.Source
statistics/1Stats is a dict representing the same information as statistics/0.Source
thread_statistics/2Obtain statistical information about a single thread.Source
time/1Execute Goal, reporting statistics to the user.Source
call_time/2Call Goal as call/1, unifying Time with a dict that provides information on the resource usage.
system.pl  -- System utilitiesShow source
lock_predicate/1Transform a predicate into a system predicate.Source
system_mode/1Switch the system into system or user mode.Source
system_module/0Any predicate defined after this declaraction uptil the end of the file will become a system predicate.Source
unlock_predicate/1Transform a system predicate into a normal system predicate.Source
terms.pl  -- Term manipulationShow source
mapargs/3Term1 and Term2 have the same functor (name/arity) and for each matching pair of arguments call(Goal, A1, A2) is true.Source
subsumes/2True if Generic is unified to Specific without changing Specific.Source
subsumes_chk/2True if Generic can be made equivalent to Specific without changing Specific.Source
term_factorized/3Is true when Skeleton is Term where all subterms that appear multiple times are replaced by a variable and Substitution is a list of Var=Value that provides the subterm at the location Var.Source
term_size/2True if Size is the size in cells occupied by Term on the global (term) stack.Source
term_subsumer/3General is the most specific term that is a generalisation of Special1 and Special2.Source
variant/2Same as SWI-Prolog Term1 =@= Term2.Source
foldsubterms/4The predicate foldsubterms/5 calls call(Goal4, SubTerm1, SubTerm2, StateIn, StateOut) for each subterm, including variables, in Term1.
mapsubterms/3Recursively map sub terms of Term1 into subterms of Term2 for every pair for which call(Goal, ST1, ST2) succeeds.
same_functor/2True when Term1 and Term2 are terms that have the same functor (Name/Arity).
thread_pool.pl  -- Resource bounded thread managementShow source
create_pool/1Hook to create a thread pool lazily.Source
current_thread_pool/1True if Name refers to a defined thread pool.Source
thread_create_in_pool/4Create a thread in Pool.Source
thread_pool_create/3Create a pool of threads.Source
thread_pool_destroy/1Destroy the thread pool named Name.Source
thread_pool_property/2True if Property is a property of thread pool Name.Source
worker_exitted/3It is possible that '__thread_pool_manager' no longer exists while closing down the process because the manager was killed before the worker.Source
ugraphs.pl  -- Graph manipulation libraryShow source
add_edges/3Unify NewGraph with a new graph obtained by adding the list of Edges to Graph.Source
add_vertices/3Unify NewGraph with a new graph obtained by adding the list of Vertices to Graph.Source
complement/2UGraphOut is a ugraph with an edge between all vertices that are not connected in UGraphIn and all edges from UGraphIn removed.Source
compose/3Compose NewGraph by connecting the drains of LeftGraph to the sources of RightGraph.Source
connect_ugraph/3Adds Start as an additional vertex that is connected to all vertices in UGraphIn.Source
del_edges/3Unify NewGraph with a new graph obtained by removing the list of Edges from Graph.Source
del_vertices/3Unify NewGraph with a new graph obtained by deleting the list of Vertices and all the edges that start from or go to a vertex in Vertices to the Graph.Source
edges/2Unify Edges with all edges appearing in Graph.Source
reachable/3True when Vertices is an ordered set of vertices reachable in UGraph, including Vertex.Source
transitive_closure/2Generate the graph Closure as the transitive closure of Graph.Source
transpose_ugraph/2Unify NewGraph with a new graph obtained from Graph by replacing all edges of the form V1-V2 by edges of the form V2-V1.Source
ugraph_union/3NewGraph is the union of Graph1 and Graph2.Source
vertices/2Unify Vertices with all vertices appearing in Graph.Source
vertices_edges_to_ugraph/3Create a UGraph from Vertices and Edges.Source
neighbors/3Neigbours is a sorted list of the neighbours of Vertex in Graph.
ugraph_layers/2Sort vertices topologically.
url.pl  -- Analysing and constructing URLShow source
file_name_to_url/2Translate between a filename and a file:// URL.Source
global_url/3Translate a possibly relative URL into an absolute one.Source
http_location/2Construct or analyze an HTTP location.Source
is_absolute_url/1True if URL is an absolute URL.Source
parse_url/2Construct or analyse a URL.Source
parse_url/3Similar to parse_url/2 for relative URLs.Source
parse_url_search/2Construct or analyze an HTTP search specification.Source
set_url_encoding/2Query and set the encoding for URLs.Source
url_iri/2Convert between a URL, encoding in US-ASCII and an IRI.Source
www_form_encode/2En/decode to/from application/x-www-form-encoded.Source
utf8.pl  -- UTF-8 encoding/decoding on lists of character codes.Show source
utf8_codes//1DCG translating between a Unicode code-list and its UTF-8 encoded byte-string.Source
varnumbers.pl  -- Utilities for numbered termsShow source
max_var_number/3True when Max is the max of Start and the highest numbered $VAR(N) term.Source
numbervars/1Number variables in Term using $VAR(N).Source
varnumbers/2Inverse of numbervars/1.Source
varnumbers/3Inverse of numbervars/3.Source
varnumbers_names/3If Term is a term with numbered and named variables using the reserved term '$VAR'(X), Copy is a copy of Term where each '$VAR'(X) is consistently replaced by a fresh variable and Bindings is a list X = Var, relating the X terms with the variable it is mapped to.Source
wfs.pl  -- Well Founded Semantics interfaceShow source
answer_residual/2True when Goal resolves to a tabled predicate and Residual is the residual goal associated with an answer for Goal.Source
call_delays/2True when Goal is true with Delays.Source
call_residual_program/2Call Goal and return the full residual program as a list of Clauses.Source
delays_residual_program/2Given a delay as returned by call_delays/2, produce a set of clauses the represents the complete residual program responsible for these delays, The program contains at least one loop through tnot/1 and is either inconsistent or has multiple models according to the stable model semantics.Source
when.pl  -- Conditional coroutiningShow source
when/2Execute Goal when Condition is satisfied.Source
www_browser.pl  -- Open a URL in the users browserShow source
expand_url_path/2Expand URL specifications similar to absolute_file_name/3.Source
known_browser/2True if browser FileBaseName has a remote protocol compatible to Compatible.Source
www_open_url/1Open URL in running version of the users' browser or start a new browser.Source
yall.pl  -- Lambda expressionsShow source
is_lambda/1True if Term is a valid Lambda expression.Source
//2Shorthand for Free/[]>>Lambda.
>>/2Calls a copy of Lambda.
lambda_calls/2Goal is the goal called if call/N is applied to LambdaExpression, where ExtraArgs are the additional arguments to call/N.