\chapter{Summary} \label{sec:summary} % Required Macros: % % environment `summarylist' to embrace a summary list % % \predicatesummary{Name}{Arity}{Summary} % \oppredsummary{Name}{Arity}{Associativity}{Priority}{Summary} % \functionsummary{Name}{Arity}{Summary} % \opfuncsummary{Name}{Arity}{Associativity}{Priority}{Summary} % \opsummary{Priority}{Associativity}{Name}{Function} \section{Predicates} \label{sec:predsummary} The predicate summary is used by the Prolog predicate \index{apropos/1}\predref{apropos}{1} to suggest predicates from a keyword. \begin{summarylist}{ll} \predicatesummary{@}{2}{Call using calling context} \predicatesummary{\Scut}{0}{Cut (discard choicepoints)} \predicatesummary{\Sdollar}{0}{Discard choicepoints and demand deterministic success} \predicatesummary{\Sdollar}{1}{Verify goal succeeds deterministically} \oppredsummary{\Scomma}{2}{xfy}{1000}{Conjunction of goals} \oppredsummary{\Sifthen}{2}{xfy}{1050}{If-then-else} \oppredsummary{\Ssoftcut}{2}{xfy}{1050}{Soft-cut} \predicatesummary{\Sdot}{2}{Consult. Also functional notation} \oppredsummary{\Smapselect}{2}{xfx}{700}{Select keys from a dict} \oppredsummary{:=}{2}{xfx}{700}{WASM: Call JavaScript} \oppredsummary{\Ssemicolon}{2}{xfy}{1100}{Disjunction of two goals} \oppredsummary{\Slt}{2}{xfx}{700}{Arithmetic smaller} \oppredsummary{\Seq}{2}{xfx}{700}{True when arguments are unified} \oppredsummary{\Suniv}{2}{xfx}{700}{``Univ.'' Term to list conversion} \oppredsummary{\Saeq}{2}{xfx}{700}{Arithmetic equality} \oppredsummary{\Sle}{2}{xfx}{700}{Arithmetic smaller or equal} \oppredsummary{\Sequal}{2}{xfx}{700}{Test for strict equality} \oppredsummary{\Sstructeq}{2}{xfx}{700}{Test for structural equality (variant)} \oppredsummary{\Sane}{2}{xfx}{700}{Arithmetic not equal} \oppredsummary{\Sgt}{2}{xfx}{700}{Arithmetic larger} \oppredsummary{\Sge}{2}{xfx}{700}{Arithmetic larger or equal} \oppredsummary{\Smappunify}{2}{xfx}{700}{Partial dict unification} \predicatesummary{?=}{2}{Test of terms can be compared now} \oppredsummary{\Stlt}{2}{xfx}{700}{Standard order smaller} \oppredsummary{\Stle}{2}{xfx}{700}{Standard order smaller or equal} \oppredsummary{\Stgt}{2}{xfx}{700}{Standard order larger} \oppredsummary{\Stge}{2}{xfx}{700}{Standard order larger or equal} \oppredsummary{\Snot}{1}{fy}{900}{Negation by failure. Same as \index{not/1}\predref{not}{1}} \oppredsummary{\Sne}{2}{xfx}{700}{True if arguments cannot be unified} \oppredsummary{\Snequal}{2}{xfx}{700}{True if arguments are not strictly equal} \oppredsummary{\Sstructneq}{2}{xfx}{700}{Not structural identical} \oppredsummary{\Shat}{2}{xfy}{200}{Existential quantification (\index{bagof/3}\predref{bagof}{3}, \index{setof/3}\predref{setof}{3})} \oppredsummary{\Sbar}{2}{xfy}{1105}{Disjunction in DCGs. Same as \predref{\Ssemicolon}{2}} \predicatesummary{\Scurl}{1}{DCG escape; constraints} \predicatesummary{abolish}{1}{Remove predicate definition from the database} \predicatesummary{abolish}{2}{Remove predicate definition from the database} \predicatesummary{abolish_all_tables}{0}{Abolish computed tables} \predicatesummary{abolish_module_tables}{1}{Abolish all tables in a module} \predicatesummary{abolish_monotonic_tables}{0}{Abolish all monotonic tables} \predicatesummary{abolish_nonincremental_tables}{0}{Abolish non-auttomatic tables} \predicatesummary{abolish_nonincremental_tables}{1}{Abolish non-auttomatic tables} \predicatesummary{abolish_private_tables}{0}{Abolish tables of this thread} \predicatesummary{abolish_shared_tables}{0}{Abolish tables shared between threads} \predicatesummary{abolish_table_subgoals}{1}{Abolish tables for a goal} \predicatesummary{abort}{0}{Abort execution, return to top level} \predicatesummary{absolute_file_name}{2}{Get absolute path name} \predicatesummary{absolute_file_name}{3}{Get absolute path name with options} \predicatesummary{answer_count_restraint}{0}{Undefined answer due to \const{max_answers}} \predicatesummary{access_file}{2}{Check access permissions of a file} \predicatesummary{acyclic_term}{1}{Test term for cycles} \predicatesummary{add_import_module}{3}{Add module to the auto-import list} \predicatesummary{add_nb_set}{2}{Add term to a non-backtrackable set} \predicatesummary{add_nb_set}{3}{Add term to a non-backtrackable set} \predicatesummary{append}{1}{Append to a file} \predicatesummary{apple_current_locale_identifier}{1}{Get Apple locale info} \predicatesummary{apply}{2}{Call goal with additional arguments} \predicatesummary{apropos}{1}{\pllib{online_help} Search manual} \predicatesummary{arg}{3}{Access argument of a term} \predicatesummary{assoc_to_list}{2}{Convert association tree to list} \predicatesummary{assert}{1}{Add a clause to the database} \predicatesummary{assert}{2}{Add a clause to the database, give reference} \predicatesummary{asserta}{1}{Add a clause to the database (first)} \predicatesummary{asserta}{2}{Add a clause to the database (first)} \predicatesummary{assertion}{1}{Make assertions about your program} \predicatesummary{assertz}{1}{Add a clause to the database (last)} \predicatesummary{assertz}{2}{Add a clause to the database (last)} \predicatesummary{attach_console}{0}{Attach I/O console to thread} \predicatesummary{attach_packs}{0}{Attach add-ons} \predicatesummary{attach_packs}{1}{Attach add-ons from directory} \predicatesummary{attach_packs}{2}{Attach add-ons from directory} \predicatesummary{attribute_goals}{3}{Project attributes to goals} \predicatesummary{attr_unify_hook}{2}{Attributed variable unification hook} \predicatesummary{attr_portray_hook}{2}{Attributed variable print hook} \predicatesummary{attvar}{1}{Type test for attributed variable} \predicatesummary{at_end_of_stream}{0}{Test for end of file on input} \predicatesummary{at_end_of_stream}{1}{Test for end of file on stream} \predicatesummary{at_halt}{1}{Register goal to run at \index{halt/1}\predref{halt}{1}} \predicatesummary{atom}{1}{Type check for an atom} \predicatesummary{atom_chars}{2}{Convert between atom and list of characters} \predicatesummary{atom_codes}{2}{Convert between atom and list of characters codes} \predicatesummary{atom_concat}{3}{Contatenate two atoms} \predicatesummary{atom_length}{2}{Determine length of an atom} \predicatesummary{atom_number}{2}{Convert between atom and number} \predicatesummary{atom_prefix}{2}{Test for start of atom} \predicatesummary{atom_string}{2}{Conversion between atom and string} \predicatesummary{atom_to_term}{3}{Convert between atom and term} \predicatesummary{atomic}{1}{Type check for primitive} \predicatesummary{atomic_concat}{3}{Concatenate two atomic values to an atom} \predicatesummary{atomic_list_concat}{2}{Append a list of atomics} \predicatesummary{atomic_list_concat}{3}{Append a list of atomics with separator} \predicatesummary{atomics_to_string}{2}{Concatenate list of inputs to a string} \predicatesummary{atomics_to_string}{3}{Concatenate list of inputs to a string} \predicatesummary{autoload}{1}{Declare a file for autoloading} \predicatesummary{autoload}{2}{Declare a file for autoloading specific predicates} \predicatesummary{autoload_all}{0}{Autoload all predicates now} \predicatesummary{autoload_path}{1}{Add directories for autoloading} \predicatesummary{await}{2}{WASM: Wait for a Promise} \predicatesummary{b_getval}{2}{Fetch backtrackable global variable} \predicatesummary{b_set_dict}{3}{Destructive assignment on a dict} \predicatesummary{b_setval}{2}{Assign backtrackable global variable} \predicatesummary{bagof}{3}{Find all solutions to a goal} \predicatesummary{between}{3}{Integer range checking/generating} \predicatesummary{blob}{2}{Type check for a blob} \predicatesummary{bounded_number}{3}{Number between bounds} \predicatesummary{break}{0}{Start interactive top level} \predicatesummary{break_hook}{6}{\hook{prolog} Debugger hook} \predicatesummary{byte_count}{2}{Byte-position in a stream} \predicatesummary{call}{1}{Call a goal} \predicatesummary{call}{[2..]}{Call with additional arguments} \predicatesummary{call_cleanup}{2}{Guard a goal with a cleaup-handler} \predicatesummary{call_dcg}{3}{As \index{phrase/3}\predref{phrase}{3} without type checking} \predicatesummary{call_delays}{2}{Get the condition associated with an answer} \predicatesummary{call_residue_vars}{2}{Find residual attributed variables} \predicatesummary{call_residual_program}{2}{Get residual program associated with an answer} \predicatesummary{call_shared_object_function}{2}{UNIX: Call C-function in shared (.so) file} \predicatesummary{call_with_depth_limit}{3}{Prove goal with bounded depth} \predicatesummary{call_with_inference_limit}{3}{Prove goal in limited inferences} \predicatesummary{callable}{1}{Test for atom or compound term} \predicatesummary{cancel_halt}{1}{Cancel \index{halt/0}\predref{halt}{0} from an \index{at_halt/1}\predref{at_halt}{1} hook} \predicatesummary{catch}{3}{Call goal, watching for exceptions} \predicatesummary{char_code}{2}{Convert between character and character code} \predicatesummary{char_conversion}{2}{Provide mapping of input characters} \predicatesummary{char_type}{2}{Classify characters} \predicatesummary{character_count}{2}{Get character index on a stream} \predicatesummary{chdir}{1}{Compatibility: change working directory} \predicatesummary{chr_constraint}{1}{CHR Constraint declaration} \predicatesummary{chr_show_store}{1}{List suspended CHR constraints} \predicatesummary{chr_trace}{0}{Start CHR tracer} \predicatesummary{chr_type}{1}{CHR Type declaration} \predicatesummary{chr_notrace}{0}{Stop CHR tracer} \predicatesummary{chr_leash}{1}{Define CHR leashed ports} \predicatesummary{chr_option}{2}{Specify CHR compilation options} \predicatesummary{clause}{2}{Get clauses of a predicate} \predicatesummary{clause}{3}{Get clauses of a predicate} \predicatesummary{clause_property}{2}{Get properties of a clause} \predicatesummary{close}{1}{Close stream} \predicatesummary{close}{2}{Close stream (forced)} \predicatesummary{close_dde_conversation}{1}{Win32: Close DDE channel} \predicatesummary{close_shared_object}{1}{UNIX: Close shared library (.so file)} \predicatesummary{collation_key}{2}{Sort key for locale dependent ordering} \predicatesummary{comment_hook}{3}{\hook{prolog} handle comments in sources} \predicatesummary{compare}{3}{Compare, using a predicate to determine the order} \predicatesummary{compile_aux_clauses}{1}{Compile predicates for \index{goal_expansion/2}\predref{goal_expansion}{2}} \predicatesummary{compile_predicates}{1}{Compile dynamic code to static} \predicatesummary{compiling}{0}{Is this a compilation run?} \predicatesummary{compound}{1}{Test for compound term} \predicatesummary{compound_name_arity}{3}{Name and arity of a compound term} \predicatesummary{compound_name_arguments}{3}{Name and arguments of a compound term} \predicatesummary{code_type}{2}{Classify a character-code} \predicatesummary{consult}{1}{Read (compile) a Prolog source file} \predicatesummary{context_module}{1}{Get context module of current goal} \predicatesummary{convert_time}{8}{Break time stamp into fields} \predicatesummary{convert_time}{2}{Convert time stamp to string} \predicatesummary{copy_stream_data}{2}{Copy all data from stream to stream} \predicatesummary{copy_stream_data}{3}{Copy n bytes from stream to stream} \predicatesummary{copy_predicate_clauses}{2}{Copy clauses between predicates} \predicatesummary{copy_term}{2}{Make a copy of a term} \predicatesummary{copy_term}{3}{Copy a term and obtain attribute-goals} \predicatesummary{copy_term}{4}{Copy part of the variables in a term} \predicatesummary{copy_term_nat}{2}{Make a copy of a term without attributes} \predicatesummary{copy_term_nat}{4}{Copy part of the variables in a term} \predicatesummary{create_prolog_flag}{3}{Create a new Prolog flag} \predicatesummary{current_arithmetic_function}{1}{Examine evaluable functions} \predicatesummary{current_atom}{1}{Examine existing atoms} \predicatesummary{current_blob}{2}{Examine typed blobs} \predicatesummary{current_char_conversion}{2}{Query input character mapping} \predicatesummary{current_engine}{1}{Enumerate known engines} \predicatesummary{current_flag}{1}{Examine existing flags} \predicatesummary{current_foreign_library}{2}{\pllib{shlib} Examine loaded shared libraries (.so files)} \predicatesummary{current_format_predicate}{2}{Enumerate user-defined format codes} \predicatesummary{current_functor}{2}{Examine existing name/arity pairs} \predicatesummary{current_input}{1}{Get current input stream} \predicatesummary{current_key}{1}{Examine existing database keys} \predicatesummary{current_locale}{1}{Get the current locale} \predicatesummary{current_module}{1}{Examine existing modules} \predicatesummary{current_op}{3}{Examine current operator declarations} \predicatesummary{current_output}{1}{Get the current output stream} \predicatesummary{current_predicate}{1}{Examine existing predicates (ISO)} \predicatesummary{current_predicate}{2}{Examine existing predicates} \predicatesummary{current_signal}{3}{Current software signal mapping} \predicatesummary{current_stream}{3}{Examine open streams} \predicatesummary{current_table}{2}{Find answer table for a variant} \predicatesummary{current_transaction}{1}{Detect encapsulating transactions} \predicatesummary{current_trie}{1}{Enumerate known tries} \predicatesummary{cyclic_term}{1}{Test term for cycles} \predicatesummary{day_of_the_week}{2}{Determine ordinal-day from date} \predicatesummary{date_time_stamp}{2}{Convert date structure to time-stamp} \predicatesummary{date_time_value}{3}{Extract info from a date structure} \predicatesummary{dcg_translate_rule}{2}{Source translation of DCG rules} \predicatesummary{dcg_translate_rule}{4}{Source translation of DCG rules} \predicatesummary{dde_current_connection}{2}{Win32: Examine open DDE connections} \predicatesummary{dde_current_service}{2}{Win32: Examine DDE services provided} \predicatesummary{dde_execute}{2}{Win32: Execute command on DDE server} \predicatesummary{dde_register_service}{2}{Win32: Become a DDE server} \predicatesummary{dde_request}{3}{Win32: Make a DDE request} \predicatesummary{dde_poke}{3}{Win32: POKE operation on DDE server} \predicatesummary{dde_unregister_service}{1}{Win32: Terminate a DDE service} \predicatesummary{debug}{0}{Test for debugging mode} \predicatesummary{debug}{1}{Select topic for debugging} \predicatesummary{debug}{3}{Print debugging message on topic} \predicatesummary{debug_control_hook}{1}{\hook{prolog} Extend \index{spy/1}\predref{spy}{1}, etc.} \predicatesummary{debugging}{0}{Show debugger status} \predicatesummary{debugging}{1}{Test where we are debugging topic} \predicatesummary{default_module}{2}{Query module inheritance} \predicatesummary{del_attr}{2}{Delete attribute from variable} \predicatesummary{del_attrs}{1}{Delete all attributes from variable} \predicatesummary{del_dict}{4}{Delete Key-Value pair from a dict} \predicatesummary{delays_residual_program}{2}{Get the residual program for an answer} \predicatesummary{delete_directory}{1}{Remove a folder from the file system} \predicatesummary{delete_file}{1}{Remove a file from the file system} \predicatesummary{delete_import_module}{2}{Remove module from import list} \predicatesummary{det}{1}{Declare predicates as deterministic} \predicatesummary{deterministic}{1}{Test deterministicy of current clause} \predicatesummary{dif}{2}{Constrain two terms to be different} \predicatesummary{directory_files}{2}{Get entries of a directory/folder} \oppredsummary{discontiguous}{1}{fx}{1150}{Indicate distributed definition of a predicate} \predicatesummary{divmod}{4}{Compute quotient and remainder of two integers} \predicatesummary{downcase_atom}{2}{Convert atom to lower-case} \predicatesummary{duplicate_term}{2}{Create a copy of a term} \predicatesummary{dwim_match}{2}{Atoms match in ``Do What I Mean'' sense} \predicatesummary{dwim_match}{3}{Atoms match in ``Do What I Mean'' sense} \predicatesummary{dwim_predicate}{2}{Find predicate in ``Do What I Mean'' sense} \oppredsummary{dynamic}{1}{fx}{1150}{Indicate predicate definition may change} \predicatesummary{dynamic}{2}{Indicate predicate definition may change} \predicatesummary{edit}{0}{Edit current script- or associated file} \predicatesummary{edit}{1}{Edit a file, predicate, module (extensible)} \predicatesummary{elif}{1}{Part of conditional compilation (directive)} \predicatesummary{else}{0}{Part of conditional compilation (directive)} \predicatesummary{empty_assoc}{1}{Create/test empty association tree} \predicatesummary{empty_nb_set}{1}{Test/create an empty non-backtrackable set} \predicatesummary{encoding}{1}{Define encoding inside a source file} \predicatesummary{endif}{0}{End of conditional compilation (directive)} \predicatesummary{engine_create}{3}{Create an interactor} \predicatesummary{engine_create}{4}{Create an interactor} \predicatesummary{engine_destroy}{1}{Destroy an interactor} \predicatesummary{engine_fetch}{1}{Get term from caller} \predicatesummary{engine_next}{2}{Ask interactor for next term} \predicatesummary{engine_next_reified}{2}{Ask interactor for next term} \predicatesummary{engine_post}{2}{Send term to an interactor} \predicatesummary{engine_post}{3}{Send term to an interactor and wait for reply} \predicatesummary{engine_self}{1}{Get handle to running interactor} \predicatesummary{engine_yield}{1}{Make term available to caller} \predicatesummary{ensure_loaded}{1}{Consult a file if that has not yet been done} \predicatesummary{erase}{1}{Erase a database record or clause} \predicatesummary{exception}{3}{\hook{user} Handle runtime exceptions} \predicatesummary{exists_directory}{1}{Check existence of directory} \predicatesummary{exists_file}{1}{Check existence of file} \predicatesummary{exists_source}{1}{Check existence of a Prolog source} \predicatesummary{exists_source}{2}{Check existence of a Prolog source} \predicatesummary{expand_answer}{2}{Expand answer of query} \predicatesummary{expand_file_name}{2}{Wildcard expansion of file names} \predicatesummary{expand_file_search_path}{2}{Wildcard expansion of file paths} \predicatesummary{expand_goal}{2}{Compiler: expand goal in clause-body} \predicatesummary{expand_goal}{4}{Compiler: expand goal in clause-body} \predicatesummary{expand_query}{4}{Expanded entered query} \predicatesummary{expand_term}{2}{Compiler: expand read term into clause(s)} \predicatesummary{expand_term}{4}{Compiler: expand read term into clause(s)} \predicatesummary{expects_dialect}{1}{For which Prolog dialect is this code written?} \predicatesummary{explain}{1}{\pllib{explain} Explain argument} \predicatesummary{explain}{2}{\pllib{explain} 2nd argument is explanation of first} \predicatesummary{export}{1}{Export a predicate from a module} \predicatesummary{fail}{0}{Always false} \predicatesummary{false}{0}{Always false} \predicatesummary{fast_term_serialized}{2}{Fast term (de-)serialization} \predicatesummary{fast_read}{2}{Read binary term serialization} \predicatesummary{fast_write}{2}{Write binary term serialization} \predicatesummary{current_prolog_flag}{2}{Get system configuration parameters} \predicatesummary{file_base_name}{2}{Get file part of path} \predicatesummary{file_directory_name}{2}{Get directory part of path} \predicatesummary{file_name_extension}{3}{Add, remove or test file extensions} \predicatesummary{file_search_path}{2}{Define path-aliases for locating files} \predicatesummary{find_chr_constraint}{1}{Returns a constraint from the store} \predicatesummary{findall}{3}{Find all solutions to a goal} \predicatesummary{findall}{4}{Difference list version of \index{findall/3}\predref{findall}{3}} \predicatesummary{findnsols}{4}{Find first \arg{N} solutions} \predicatesummary{findnsols}{5}{Difference list version of \index{findnsols/4}\predref{findnsols}{4}} \predicatesummary{fill_buffer}{1}{Fill the input buffer of a stream} \predicatesummary{flag}{3}{Simple global variable system} \predicatesummary{float}{1}{Type check for a floating point number} \predicatesummary{float_class}{2}{Classify (special) floats} \predicatesummary{float_parts}{4}{Get mantissa and exponent of a float} \predicatesummary{flush_output}{0}{Output pending characters on current stream} \predicatesummary{flush_output}{1}{Output pending characters on specified stream} \predicatesummary{forall}{2}{Prove goal for all solutions of another goal} \predicatesummary{format}{1}{Formatted output} \predicatesummary{format}{2}{Formatted output with arguments} \predicatesummary{format}{3}{Formatted output on a stream} \predicatesummary{format_time}{3}{C strftime() like date/time formatter} \predicatesummary{format_time}{4}{date/time formatter with explicit locale} \predicatesummary{format_predicate}{2}{Program \index{format/[1,2]}\predref{format}{[1,2]}} \predicatesummary{term_attvars}{2}{Find attributed variables in a term} \predicatesummary{term_variables}{2}{Find unbound variables in a term} \predicatesummary{term_variables}{3}{Find unbound variables in a term} \predicatesummary{text_to_string}{2}{Convert arbitrary text to a string} \predicatesummary{freeze}{2}{Delay execution until variable is bound} \predicatesummary{frozen}{2}{Query delayed goals on var} \predicatesummary{functor}{3}{Get name and arity of a term or construct a term} \predicatesummary{functor}{4}{Get name and arity of a term or construct a term} \predicatesummary{garbage_collect}{0}{Invoke the garbage collector} \predicatesummary{garbage_collect_atoms}{0}{Invoke the atom garbage collector} \predicatesummary{garbage_collect_clauses}{0}{Invoke clause garbage collector} \predicatesummary{gen_assoc}{3}{Enumerate members of association tree} \predicatesummary{gen_nb_set}{2}{Generate members of non-backtrackable set} \predicatesummary{gensym}{2}{Generate unique atoms from a base} \predicatesummary{get}{1}{Read first non-blank character} \predicatesummary{get}{2}{Read first non-blank character from a stream} \predicatesummary{get_assoc}{3}{Fetch key from association tree} \predicatesummary{get_assoc}{5}{Fetch key from association tree} \predicatesummary{get_attr}{3}{Fetch named attribute from a variable} \predicatesummary{get_attrs}{2}{Fetch all attributes of a variable} \predicatesummary{get_byte}{1}{Read next byte (ISO)} \predicatesummary{get_byte}{2}{Read next byte from a stream (ISO)} \predicatesummary{get_char}{1}{Read next character as an atom (ISO)} \predicatesummary{get_char}{2}{Read next character from a stream (ISO)} \predicatesummary{get_code}{1}{Read next character (ISO)} \predicatesummary{get_code}{2}{Read next character from a stream (ISO)} \predicatesummary{get_dict}{3}{Get the value associated to a key from a dict} \predicatesummary{get_dict}{5}{Replace existing value in a dict} \predicatesummary{get_flag}{2}{Get value of a flag} \predicatesummary{get_single_char}{1}{Read next character from the terminal} \predicatesummary{get_string_code}{3}{Get character code at index in string} \predicatesummary{get_time}{1}{Get current time} \predicatesummary{get0}{1}{Read next character} \predicatesummary{get0}{2}{Read next character from a stream} \predicatesummary{getenv}{2}{Get shell environment variable} \predicatesummary{goal_expansion}{2}{Hook for macro-expanding goals} \predicatesummary{goal_expansion}{4}{Hook for macro-expanding goals} \predicatesummary{ground}{1}{Verify term holds no unbound variables} \predicatesummary{gdebug}{0}{Debug using graphical tracer} \predicatesummary{gspy}{1}{Spy using graphical tracer} \predicatesummary{gtrace}{0}{Trace using graphical tracer} \predicatesummary{guitracer}{0}{Install hooks for the graphical debugger} \predicatesummary{gxref}{0}{Cross-reference loaded program} \predicatesummary{halt}{0}{Exit from Prolog} \predicatesummary{halt}{1}{Exit from Prolog with status} \predicatesummary{term_hash}{2}{Hash-value of ground term} \predicatesummary{term_hash}{4}{Hash-value of term with depth limit} \predicatesummary{help}{0}{Give help on help} \predicatesummary{help}{1}{Give help on predicates and show parts of manual} \predicatesummary{help_hook}{1}{\hook{prolog} User-hook in the help-system} \predicatesummary{if}{1}{Start conditional compilation (directive)} \predicatesummary{ignore}{1}{Call the argument, but always succeed} \predicatesummary{import}{1}{Import a predicate from a module} \predicatesummary{import_module}{2}{Query import modules} \predicatesummary{in_pce_thread}{1}{Run goal in XPCE thread} \predicatesummary{in_pce_thread_sync}{1}{Run goal in XPCE thread} \predicatesummary{include}{1}{Include a file with declarations} \predicatesummary{initialization}{1}{Initialization directive} \predicatesummary{initialization}{2}{Initialization directive} \predicatesummary{initialize}{0}{Run program initialization} \predicatesummary{instance}{2}{Fetch clause or record from reference} \predicatesummary{integer}{1}{Type check for integer} \predicatesummary{interactor}{0}{Start new thread with console and top level} \oppredsummary{is}{2}{xfx}{700}{Evaluate arithmetic expression} \predicatesummary{is_absolute_file_name}{1}{True if arg defines an absolute path} \predicatesummary{is_assoc}{1}{Verify association list} \predicatesummary{is_async}{0}{WASM: Test Prolog can call \index{await/2}\predref{await}{2}} \predicatesummary{is_dict}{1}{Type check for a dict} \predicatesummary{is_dict}{2}{Type check for a dict in a class} \predicatesummary{is_engine}{1}{Type check for an engine handle} \predicatesummary{is_list}{1}{Type check for a list} \predicatesummary{is_most_general_term}{1}{Type check for general term} \predicatesummary{is_object}{1}{WASM: Test JavaScript object} \predicatesummary{is_object}{2}{WASM: Test JavaScript object and class} \predicatesummary{is_stream}{1}{Type check for a stream handle} \predicatesummary{is_trie}{1}{Type check for a trie handle} \predicatesummary{is_thread}{1}{Type check for an thread handle} \predicatesummary{join_threads}{0}{Join all terminated threads interactively} \predicatesummary{keysort}{2}{Sort, using a key} \predicatesummary{known_licenses}{0}{Print known licenses} \predicatesummary{last}{2}{Last element of a list} \predicatesummary{leash}{1}{Change ports visited by the tracer} \predicatesummary{length}{2}{Length of a list} \predicatesummary{library_directory}{1}{\hook{user} Directories holding Prolog libraries} \predicatesummary{license}{0}{Evaluate licenses of loaded modules} \predicatesummary{license}{1}{Define license for current file} \predicatesummary{license}{2}{Define license for named module} \predicatesummary{line_count}{2}{Line number on stream} \predicatesummary{line_position}{2}{Character position in line on stream} \predicatesummary{list_debug_topics}{0}{List registered topics for debugging} \predicatesummary{list_to_assoc}{2}{Create association tree from list} \predicatesummary{list_to_set}{2}{Remove duplicates from a list} \predicatesummary{list_strings}{0}{Help porting to version 7} \predicatesummary{load_files}{1}{Load source files} \predicatesummary{load_files}{2}{Load source files with options} \predicatesummary{load_foreign_library}{1}{\pllib{shlib} Load shared library (.so file)} \predicatesummary{load_foreign_library}{2}{\pllib{shlib} Load shared library (.so file)} \predicatesummary{locale_create}{3}{Create a new locale object} \predicatesummary{locale_destroy}{1}{Destroy a locale object} \predicatesummary{locale_property}{2}{Query properties of locale objects} \predicatesummary{locale_sort}{2}{Language dependent sort of atoms} \predicatesummary{make}{0}{Reconsult all changed source files} \predicatesummary{make_directory}{1}{Create a folder on the file system} \predicatesummary{make_library_index}{1}{Create autoload file INDEX.pl} \predicatesummary{malloc_property}{1}{Property of the allocator} \predicatesummary{make_library_index}{2}{Create selective autoload file INDEX.pl} \predicatesummary{map_assoc}{2}{Map association tree} \predicatesummary{map_assoc}{3}{Map association tree} \predicatesummary{dict_create}{3}{Create a dict from data} \predicatesummary{dict_pairs}{3}{Convert between dict and list of pairs} \predicatesummary{max_assoc}{3}{Highest key in association tree} \predicatesummary{memberchk}{2}{Deterministic \index{member/2}\predref{member}{2}} \predicatesummary{message_hook}{3}{Intercept \index{print_message/2}\predref{print_message}{2}} \predicatesummary{message_line_element}{2}{\hook{prolog} Intercept \index{print_message_lines/3}\predref{print_message_lines}{3}} \predicatesummary{message_property}{2}{\hook{user} Define display of a message} \predicatesummary{message_queue_create}{1}{Create queue for thread communication} \predicatesummary{message_queue_create}{2}{Create queue for thread communication} \predicatesummary{message_queue_destroy}{1}{Destroy queue for thread communication} \predicatesummary{message_queue_property}{2}{Query message queue properties} \predicatesummary{message_queue_set}{2}{Set a message queue property} \predicatesummary{message_to_string}{2}{Translate message-term to string} \predicatesummary{meta_predicate}{1}{Declare access to other predicates} \predicatesummary{min_assoc}{3}{Lowest key in association tree} \predicatesummary{module}{1}{Query/set current type-in module} \predicatesummary{module}{2}{Declare a module} \predicatesummary{module}{3}{Declare a module with language options} \predicatesummary{module_property}{2}{Find properties of a module} \oppredsummary{module_transparent}{1}{fx}{1150}{Indicate module based meta-predicate} \predicatesummary{msort}{2}{Sort, do not remove duplicates} \oppredsummary{multifile}{1}{fx}{1150}{Indicate distributed definition of predicate} \predicatesummary{mutex_create}{1}{Create a thread-synchronisation device} \predicatesummary{mutex_create}{2}{Create a thread-synchronisation device} \predicatesummary{mutex_destroy}{1}{Destroy a mutex} \predicatesummary{mutex_lock}{1}{Become owner of a mutex} \predicatesummary{mutex_property}{2}{Query mutex properties} \predicatesummary{mutex_statistics}{0}{Print statistics on mutex usage} \predicatesummary{mutex_trylock}{1}{Become owner of a mutex (non-blocking)} \predicatesummary{mutex_unlock}{1}{Release ownership of mutex} \predicatesummary{mutex_unlock_all}{0}{Release ownership of all mutexes} \predicatesummary{name}{2}{Convert between atom and list of character codes} \predicatesummary{nb_current}{2}{Enumerate non-backtrackable global variables} \predicatesummary{nb_delete}{1}{Delete a non-backtrackable global variable} \predicatesummary{nb_getval}{2}{Fetch non-backtrackable global variable} \predicatesummary{nb_link_dict}{3}{Non-backtrackable assignment to dict} \predicatesummary{nb_linkarg}{3}{Non-backtrackable assignment to term} \predicatesummary{nb_linkval}{2}{Assign non-backtrackable global variable} \predicatesummary{nb_set_to_list}{2}{Convert non-backtrackable set to list} \predicatesummary{nb_set_dict}{3}{Non-backtrackable assignment to dict} \predicatesummary{nb_setarg}{3}{Non-backtrackable assignment to term} \predicatesummary{nb_setval}{2}{Assign non-backtrackable global variable} \predicatesummary{nl}{0}{Generate a newline} \predicatesummary{nl}{1}{Generate a newline on a stream} \predicatesummary{nodebug}{0}{Disable debugging} \predicatesummary{nodebug}{1}{Disable debug-topic} \predicatesummary{noguitracer}{0}{Disable the graphical debugger} \predicatesummary{nonground}{2}{Term is not ground due to witness} \predicatesummary{nonvar}{1}{Type check for bound term} \predicatesummary{nonterminal}{1}{Set predicate property} \predicatesummary{noprofile}{1}{Hide (meta-) predicate for the profiler} \predicatesummary{noprotocol}{0}{Disable logging of user interaction} \predicatesummary{normalize_space}{2}{Normalize white space} \predicatesummary{nospy}{1}{Remove spy point} \predicatesummary{nospyall}{0}{Remove all spy points} \oppredsummary{not}{1}{fy}{900}{Negation by failure (argument not provable). Same as \predref{\Snot}{1}} \predicatesummary{not_exists}{1}{Tabled negation for non-ground or non-tabled goals} \predicatesummary{notrace}{0}{Stop tracing} \predicatesummary{notrace}{1}{Do not debug argument goal} \predicatesummary{nth_clause}{3}{N-th clause of a predicate} \predicatesummary{nth_integer_root_and_remainder}{4}{Integer root and remainder} \predicatesummary{number}{1}{Type check for integer or float} \predicatesummary{number_chars}{2}{Convert between number and one-char atoms} \predicatesummary{number_codes}{2}{Convert between number and character codes} \predicatesummary{number_string}{2}{Convert between number and string} \predicatesummary{numbervars}{3}{Number unbound variables of a term} \predicatesummary{numbervars}{4}{Number unbound variables of a term} \predicatesummary{on_signal}{3}{Handle a software signal} \predicatesummary{once}{1}{Call a goal deterministically} \predicatesummary{op}{3}{Declare an operator} \predicatesummary{open}{3}{Open a file (creating a stream)} \predicatesummary{open}{4}{Open a file (creating a stream)} \predicatesummary{open_dde_conversation}{3}{Win32: Open DDE channel} \predicatesummary{open_null_stream}{1}{Open a stream to discard output} \predicatesummary{open_resource}{3}{Open a program resource as a stream} \predicatesummary{open_shared_object}{2}{UNIX: Open shared library (.so file)} \predicatesummary{open_shared_object}{3}{UNIX: Open shared library (.so file)} \predicatesummary{open_source_hook}{3}{\hook{prolog} Open a source file} \predicatesummary{open_string}{2}{Open a string as a stream} \predicatesummary{ord_list_to_assoc}{2}{Convert ordered list to assoc} \predicatesummary{parse_time}{2}{Parse text to a time-stamp} \predicatesummary{parse_time}{3}{Parse text to a time-stamp} \predicatesummary{pce_dispatch}{1}{Run XPCE GUI in separate thread} \predicatesummary{pce_call}{1}{Run goal in XPCE GUI thread} \predicatesummary{peek_byte}{1}{Read byte without removing} \predicatesummary{peek_byte}{2}{Read byte without removing} \predicatesummary{peek_char}{1}{Read character without removing} \predicatesummary{peek_char}{2}{Read character without removing} \predicatesummary{peek_code}{1}{Read character-code without removing} \predicatesummary{peek_code}{2}{Read character-code without removing} \predicatesummary{peek_string}{3}{Read a string without removing} \predicatesummary{phrase}{2}{Activate grammar-rule set} \predicatesummary{phrase}{3}{Activate grammar-rule set (returning rest)} \predicatesummary{phrase_from_quasi_quotation}{2}{Parse quasi quotation with DCG} \predicatesummary{please}{3}{Query/change environment parameters} \predicatesummary{plus}{3}{Logical integer addition} \predicatesummary{portray}{1}{\hook{user} Modify behaviour of \index{print/1}\predref{print}{1}} \predicatesummary{predicate_property}{2}{Query predicate attributes} \predicatesummary{predsort}{3}{Sort, using a predicate to determine the order} \predicatesummary{print}{1}{Print a term} \predicatesummary{print}{2}{Print a term on a stream} \predicatesummary{print_message}{2}{Print message from (exception) term} \predicatesummary{print_message_lines}{3}{Print message to stream} \predicatesummary{profile}{1}{Obtain execution statistics} \predicatesummary{profile}{2}{Obtain execution statistics} \predicatesummary{profile_count}{3}{Obtain profile results on a predicate} \predicatesummary{profiler}{2}{Obtain/change status of the profiler} \predicatesummary{prolog}{0}{Run interactive top level} \predicatesummary{prolog_alert_signal}{2}{Query/set unblock signal} \predicatesummary{prolog_choice_attribute}{3}{Examine the choice point stack} \predicatesummary{prolog_current_choice}{1}{Reference to most recent choice point} \predicatesummary{prolog_current_frame}{1}{Reference to goal's environment stack} \predicatesummary{prolog_cut_to}{1}{Realise global cuts} \predicatesummary{prolog_edit:locate}{2}{Locate targets for \index{edit/1}\predref{edit}{1}} \predicatesummary{prolog_edit:locate}{3}{Locate targets for \index{edit/1}\predref{edit}{1}} \predicatesummary{prolog_edit:edit_source}{1}{Call editor for \index{edit/1}\predref{edit}{1}} \predicatesummary{prolog_edit:edit_command}{2}{Specify editor activation} \predicatesummary{prolog_edit:load}{0}{Load \index{edit/1}\predref{edit}{1} extensions} \predicatesummary{prolog_exception_hook}{4}{Rewrite exceptions} \predicatesummary{prolog_file_type}{2}{Define meaning of file extension} \predicatesummary{prolog_frame_attribute}{3}{Obtain information on a goal environment} \predicatesummary{prolog_ide}{1}{Program access to the development environment} \predicatesummary{prolog_interrupt}{0}{Allow debugging a thread} \predicatesummary{prolog_list_goal}{1}{\hook{user} Intercept tracer 'L' command} \predicatesummary{prolog_listen}{2}{Listen to Prolog events} \predicatesummary{prolog_listen}{3}{Listen to Prolog events} \predicatesummary{prolog_load_context}{2}{Context information for directives} \predicatesummary{prolog_load_file}{2}{\hook{user} Program \index{load_files/2}\predref{load_files}{2}} \predicatesummary{prolog_skip_level}{2}{Indicate deepest recursion to trace} \predicatesummary{prolog_skip_frame}{1}{Perform `skip' on a frame} \predicatesummary{prolog_stack_property}{2}{Query properties of the stacks} \predicatesummary{prolog_to_os_filename}{2}{Convert between Prolog and OS filenames} \predicatesummary{prolog_trace_interception}{4}{\pllib{user} Intercept the Prolog tracer} \predicatesummary{prolog_unlisten}{2}{Stop listening to Prolog events} \predicatesummary{project_attributes}{2}{Project constraints to query variables} \predicatesummary{prompt1}{1}{Change prompt for 1 line} \predicatesummary{prompt}{2}{Change the prompt used by \index{read/1}\predref{read}{1}} \predicatesummary{protocol}{1}{Make a log of the user interaction} \predicatesummary{protocola}{1}{Append log of the user interaction to file} \predicatesummary{protocolling}{1}{On what file is user interaction logged} \predicatesummary{public}{1}{Declaration that a predicate may be called} \predicatesummary{put}{1}{Write a character} \predicatesummary{put}{2}{Write a character on a stream} \predicatesummary{put_assoc}{4}{Add Key-Value to association tree} \predicatesummary{put_attr}{3}{Put attribute on a variable} \predicatesummary{put_attrs}{2}{Set/replace all attributes on a variable} \predicatesummary{put_byte}{1}{Write a byte} \predicatesummary{put_byte}{2}{Write a byte on a stream} \predicatesummary{put_char}{1}{Write a character} \predicatesummary{put_char}{2}{Write a character on a stream} \predicatesummary{put_code}{1}{Write a character-code} \predicatesummary{put_code}{2}{Write a character-code on a stream} \predicatesummary{put_dict}{3}{Add/replace multiple keys in a dict} \predicatesummary{put_dict}{4}{Add/replace a single key in a dict} \predicatesummary{qcompile}{1}{Compile source to Quick Load File} \predicatesummary{qcompile}{2}{Compile source to Quick Load File} \predicatesummary{qsave_program}{1}{Create runtime application} \predicatesummary{qsave_program}{2}{Create runtime application} \predicatesummary{quasi_quotation_syntax}{1}{Declare quasi quotation syntax} \predicatesummary{quasi_quotation_syntax_error}{1}{Raise syntax error} \predicatesummary{radial_restraint}{0}{Tabbling radial restraint was violated} \predicatesummary{random_property}{1}{Query properties of random generation} \predicatesummary{rational}{1}{Type check for a rational number} \predicatesummary{rational}{3}{Decompose a rational} \predicatesummary{read}{1}{Read Prolog term} \predicatesummary{read}{2}{Read Prolog term from stream} \predicatesummary{read_clause}{3}{Read clause from stream} \predicatesummary{read_link}{3}{Read a symbolic link} \predicatesummary{read_pending_codes}{3}{Fetch buffered input from a stream} \predicatesummary{read_pending_chars}{3}{Fetch buffered input from a stream} \predicatesummary{read_string}{3}{Read a number of characters into a string} \predicatesummary{read_string}{5}{Read string upto a delimiter} \predicatesummary{read_term}{2}{Read term with options} \predicatesummary{read_term}{3}{Read term with options from stream} \predicatesummary{read_term_from_atom}{3}{Read term with options from atom} \predicatesummary{read_term_with_history}{2}{Read term with command line history} \predicatesummary{recorda}{2}{Record term in the database (first)} \predicatesummary{recorda}{3}{Record term in the database (first)} \predicatesummary{recorded}{2}{Obtain term from the database} \predicatesummary{recorded}{3}{Obtain term from the database} \predicatesummary{recordz}{2}{Record term in the database (last)} \predicatesummary{recordz}{3}{Record term in the database (last)} \predicatesummary{redefine_system_predicate}{1}{Abolish system definition} \predicatesummary{reexport}{1}{Load files and re-export the imported predicates} \predicatesummary{reexport}{2}{Load predicates from a file and re-export it} \predicatesummary{reload_foreign_libraries}{0}{Reload DLLs/shared objects} \predicatesummary{reload_library_index}{0}{Force reloading the autoload index} \predicatesummary{rename_file}{2}{Change name of file} \predicatesummary{repeat}{0}{Succeed, leaving infinite backtrack points} \predicatesummary{require}{1}{This file requires these predicates} \predicatesummary{reset}{3}{Wrapper for delimited continuations} \predicatesummary{reset_gensym}{1}{Reset a gensym key} \predicatesummary{reset_gensym}{0}{Reset all gensym keys} \predicatesummary{reset_profiler}{0}{Clear statistics obtained by the profiler} \predicatesummary{resource}{2}{Declare a program resource} \predicatesummary{resource}{3}{Declare a program resource} \predicatesummary{retract}{1}{Remove clause from the database} \predicatesummary{retractall}{1}{Remove unifying clauses from the database} \predicatesummary{same_file}{2}{Succeeds if arguments refer to same file} \predicatesummary{same_term}{2}{Test terms to be at the same address} \predicatesummary{see}{1}{Change the current input stream} \predicatesummary{seeing}{1}{Query the current input stream} \predicatesummary{seek}{4}{Modify the current position in a stream} \predicatesummary{seen}{0}{Close the current input stream} \predicatesummary{select_dict}{2}{Select matching attributes from a dict} \predicatesummary{select_dict}{3}{Select matching attributes from a dict} \predicatesummary{set_end_of_stream}{1}{Set physical end of an open file} \predicatesummary{set_flag}{2}{Set value of a flag} \predicatesummary{set_input}{1}{Set current input stream from a stream} \predicatesummary{set_locale}{1}{Set the default local} \predicatesummary{set_malloc}{1}{Set memory allocator property} \predicatesummary{set_module}{1}{Set properties of a module} \predicatesummary{set_output}{1}{Set current output stream from a stream} \predicatesummary{set_prolog_IO}{3}{Prepare streams for interactive session} \predicatesummary{set_prolog_flag}{2}{Define a system feature} \predicatesummary{set_prolog_gc_thread}{1}{Control the gc thread} \predicatesummary{set_prolog_stack}{2}{Modify stack characteristics} \predicatesummary{set_random}{1}{Control random number generation} \predicatesummary{set_stream}{2}{Set stream attribute} \predicatesummary{set_stream_position}{2}{Seek stream to position} \predicatesummary{set_system_IO}{3}{Rebind stdin/stderr/stdout} \predicatesummary{setup_call_cleanup}{3}{Undo side-effects safely} \predicatesummary{setup_call_catcher_cleanup}{4}{Undo side-effects safely} \predicatesummary{setarg}{3}{Destructive assignment on term} \predicatesummary{setenv}{2}{Set shell environment variable} \predicatesummary{setlocale}{3}{Set/query C-library regional information} \predicatesummary{setof}{3}{Find all unique solutions to a goal} \predicatesummary{shell}{1}{Execute OS command} \predicatesummary{shell}{2}{Execute OS command} \predicatesummary{shift}{1}{Shift control to the closest \index{reset/3}\predref{reset}{3}} \predicatesummary{shift_for_copy}{1}{Shift control to the closest \index{reset/3}\predref{reset}{3}} \predicatesummary{show_profile}{1}{Show results of the profiler} \predicatesummary{sig_atomic}{1}{Run goal without handling signals} \predicatesummary{sig_block}{1}{Block matching thread signals} \predicatesummary{sig_pending}{1}{Query pending signals} \predicatesummary{sig_remove}{2}{Remove pending signals} \predicatesummary{sig_unblock}{1}{Unblock matching thread signals} \predicatesummary{size_abstract_term}{3}{Abstract a term (tabling support)} \predicatesummary{size_file}{2}{Get size of a file in characters} \predicatesummary{size_nb_set}{2}{Determine size of non-backtrackable set} \predicatesummary{skip}{1}{Skip to character in current input} \predicatesummary{skip}{2}{Skip to character on stream} \predicatesummary{sleep}{1}{Suspend execution for specified time} \predicatesummary{snapshot}{1}{Run goal in isolation} \predicatesummary{sort}{2}{Sort elements in a list} \predicatesummary{sort}{4}{Sort elements in a list} \predicatesummary{source_exports}{2}{Check whether source exports a predicate} \predicatesummary{source_file}{1}{Examine currently loaded source files} \predicatesummary{source_file}{2}{Obtain source file of predicate} \predicatesummary{source_file_property}{2}{Information about loaded files} \predicatesummary{source_location}{2}{Location of last read term} \predicatesummary{split_string}{4}{Break a string into substrings} \predicatesummary{spy}{1}{Force tracer on specified predicate} \predicatesummary{stamp_date_time}{3}{Convert time-stamp to date structure} \predicatesummary{statistics}{2}{Obtain collected statistics} \predicatesummary{stream_pair}{3}{Create/examine a bi-directional stream} \predicatesummary{stream_position_data}{3}{Access fields from stream position} \predicatesummary{stream_property}{2}{Get stream properties} \predicatesummary{string}{1}{Type check for string} \predicatesummary{string_bytes}{3}{Translates between text and bytes in encoding} \predicatesummary{string_concat}{3}{\index{atom_concat/3}\predref{atom_concat}{3} for strings} \predicatesummary{string_length}{2}{Determine length of a string} \predicatesummary{string_chars}{2}{Conversion between string and list of characters} \predicatesummary{string_codes}{2}{Conversion between string and list of character codes} \predicatesummary{string_code}{3}{Get or find a character code in a string} \predicatesummary{string_lower}{2}{Case conversion to lower case} \predicatesummary{string_upper}{2}{Case conversion to upper case} \predicatesummary{string_predicate}{1}{\hook{check} Predicate contains strings} \predicatesummary{strip_module}{3}{Extract context module and term} \predicatesummary{style_check}{1}{Change level of warnings} \predicatesummary{sub_atom}{5}{Take a substring from an atom} \predicatesummary{sub_atom_icasechk}{3}{Case insensitive substring match} \predicatesummary{sub_string}{5}{Take a substring from a string} \predicatesummary{subsumes_term}{2}{One-sided unification test} \predicatesummary{succ}{2}{Logical integer successor relation} \predicatesummary{swritef}{2}{Formatted write on a string} \predicatesummary{swritef}{3}{Formatted write on a string} \predicatesummary{tab}{1}{Output number of spaces} \predicatesummary{tab}{2}{Output number of spaces on a stream} \predicatesummary{table}{1}{Declare predicate to be tabled} \predicatesummary{tabled_call}{1}{Helper for \index{not_exists/1}\predref{not_exists}{1}} \predicatesummary{tdebug}{0}{Switch all threads into debug mode} \predicatesummary{tdebug}{1}{Switch a thread into debug mode} \predicatesummary{tell}{1}{Change current output stream} \predicatesummary{telling}{1}{Query current output stream} \predicatesummary{term_expansion}{2}{\hook{user} Convert term before compilation} \predicatesummary{term_expansion}{4}{\hook{user} Convert term before compilation} \predicatesummary{term_singletons}{2}{Find singleton variables in a term} \predicatesummary{term_string}{2}{Read/write a term from/to a string} \predicatesummary{term_string}{3}{Read/write a term from/to a string} \predicatesummary{term_subsumer}{3}{Most specific generalization of two terms} \predicatesummary{term_to_atom}{2}{Convert between term and atom} \predicatesummary{thread_affinity}{3}{Query and control the \jargon{affinity} mask} \predicatesummary{thread_alias}{1}{Set the alias name of a thread} \predicatesummary{thread_at_exit}{1}{Register goal to be called at exit} \predicatesummary{thread_create}{2}{Create a new Prolog task} \predicatesummary{thread_create}{3}{Create a new Prolog task} \predicatesummary{thread_detach}{1}{Make thread cleanup after completion} \predicatesummary{thread_exit}{1}{Terminate Prolog task with value} \predicatesummary{thread_get_message}{1}{Wait for message} \predicatesummary{thread_get_message}{2}{Wait for message in a queue} \predicatesummary{thread_get_message}{3}{Wait for message in a queue} \predicatesummary{thread_idle}{2}{Reduce footprint while waiting} \predicatesummary{thread_initialization}{1}{Run action at start of thread} \predicatesummary{thread_join}{1}{Wait for Prolog task-completion} \predicatesummary{thread_join}{2}{Wait for Prolog task-completion} \predicatesummary{thread_local}{1}{Declare thread-specific clauses for a predicate} \predicatesummary{thread_message_hook}{3}{Thread local \index{message_hook/3}\predref{message_hook}{3}} \predicatesummary{thread_peek_message}{1}{Test for message} \predicatesummary{thread_peek_message}{2}{Test for message in a queue} \predicatesummary{thread_property}{2}{Examine Prolog threads} \predicatesummary{thread_self}{1}{Get identifier of current thread} \predicatesummary{thread_send_message}{2}{Send message to another thread} \predicatesummary{thread_send_message}{3}{Send message to another thread} \predicatesummary{thread_setconcurrency}{2}{Number of active threads} \predicatesummary{thread_signal}{2}{Execute goal in another thread} \predicatesummary{thread_statistics}{3}{Get statistics of another thread} \predicatesummary{thread_update}{2}{Update a module and signal waiters} \predicatesummary{thread_wait}{2}{Wait for a goal to become true} \predicatesummary{threads}{0}{List running threads} \predicatesummary{throw}{1}{Raise an exception (see \index{catch/3}\predref{catch}{3})} \predicatesummary{time}{1}{Determine time needed to execute goal} \predicatesummary{time_file}{2}{Get last modification time of file} \predicatesummary{tmp_file}{2}{Create a temporary filename} \predicatesummary{tmp_file_stream}{3}{Create a temporary file and open it} \predicatesummary{tnodebug}{0}{Switch off debug mode in all threads} \predicatesummary{tnodebug}{1}{Switch off debug mode in a thread} \predicatesummary{tnot}{1}{Tabled negation} \predicatesummary{told}{0}{Close current output} \predicatesummary{tprofile}{1}{Profile a thread for some period} \predicatesummary{trace}{0}{Start the tracer} \predicatesummary{tracing}{0}{Query status of the tracer} \predicatesummary{transaction}{1}{Run goal in a transaction} \predicatesummary{transaction}{2}{Run goal in a transaction} \predicatesummary{transaction}{3}{Run goal in a transaction} \predicatesummary{transaction_updates}{1}{Updates to be committed in a transaction} \predicatesummary{trie_delete}{3}{Remove term from trie} \predicatesummary{trie_destroy}{1}{Destroy a trie} \predicatesummary{trie_gen}{3}{Get all terms from a trie} \predicatesummary{trie_gen_compiled}{2}{Get all terms from a trie} \predicatesummary{trie_gen_compiled}{3}{Get all terms from a trie} \predicatesummary{trie_insert}{2}{Insert term into a trie} \predicatesummary{trie_insert}{3}{Insert term into a trie} \predicatesummary{trie_insert}{4}{Insert term into a trie} \predicatesummary{trie_lookup}{3}{Lookup a term in a trie} \predicatesummary{trie_new}{1}{Create a trie} \predicatesummary{trie_property}{2}{Examine a trie's properties} \predicatesummary{trie_update}{3}{Update associated value in trie} \predicatesummary{trie_term}{2}{Get term from a trie by handle} \predicatesummary{trim_heap}{0}{Release unused malloc() resources} \predicatesummary{trim_stacks}{0}{Release unused stack resources} \predicatesummary{tripwire}{2}{\hook{prolog} Handle a tabling tripwire event} \predicatesummary{true}{0}{Succeed} \predicatesummary{tspy}{1}{Set spy point and enable debugging in all threads} \predicatesummary{tspy}{2}{Set spy point and enable debugging in a thread} \predicatesummary{tty_get_capability}{3}{Get terminal parameter} \predicatesummary{tty_goto}{2}{Goto position on screen} \predicatesummary{tty_put}{2}{Write control string to terminal} \predicatesummary{tty_size}{2}{Get row/column size of the terminal} \predicatesummary{ttyflush}{0}{Flush output on terminal} \predicatesummary{undefined}{0}{Well Founded Semantics: true nor false} \predicatesummary{undo}{1}{Schedule goal for backtracking} \predicatesummary{unify_with_occurs_check}{2}{Logically sound unification} \predicatesummary{unifiable}{3}{Determining binding required for unification} \predicatesummary{unknown}{2}{Trap undefined predicates} \predicatesummary{unload_file}{1}{Unload a source file} \predicatesummary{unload_foreign_library}{1}{\pllib{shlib} Detach shared library (.so file)} \predicatesummary{unload_foreign_library}{2}{\pllib{shlib} Detach shared library (.so file)} \predicatesummary{unsetenv}{1}{Delete shell environment variable} \predicatesummary{untable}{1}{Remove tabling instrumentation} \predicatesummary{upcase_atom}{2}{Convert atom to upper-case} \predicatesummary{use_foreign_library}{1}{Load DLL/shared object (directive)} \predicatesummary{use_foreign_library}{2}{Load DLL/shared object (directive)} \predicatesummary{use_module}{1}{Import a module} \predicatesummary{use_module}{2}{Import predicates from a module} \predicatesummary{valid_string_goal}{1}{\hook{check} Goal handles strings} \predicatesummary{var}{1}{Type check for unbound variable} \predicatesummary{var_number}{2}{Check that var is numbered by numbervars} \predicatesummary{var_property}{2}{Variable properties during macro expansion} \predicatesummary{variant_sha1}{2}{Term-hash for term-variants} \predicatesummary{variant_hash}{2}{Term-hash for term-variants} \predicatesummary{version}{0}{Print system banner message} \predicatesummary{version}{1}{Add messages to the system banner} \predicatesummary{visible}{1}{Ports that are visible in the tracer} \oppredsummary{volatile}{1}{fx}{1150}{Predicates that are not saved} \predicatesummary{wait_for_input}{3}{Wait for input with optional timeout} \predicatesummary{when}{2}{Execute goal when condition becomes true} \predicatesummary{wildcard_match}{2}{POSIX style glob pattern matching} \predicatesummary{wildcard_match}{3}{POSIX style glob pattern matching} \predicatesummary{win_add_dll_directory}{1}{Add directory to DLL search path} \predicatesummary{win_add_dll_directory}{2}{Add directory to DLL search path} \predicatesummary{win_remove_dll_directory}{1}{Remove directory from DLL search path} \predicatesummary{win_exec}{2}{Win32: spawn Windows task} \predicatesummary{win_has_menu}{0}{Win32: true if console menu is available} \predicatesummary{win_folder}{2}{Win32: get special folder by CSIDL} \predicatesummary{win_insert_menu}{2}{swipl-win.exe: add menu} \predicatesummary{win_insert_menu_item}{4}{swipl-win.exe: add item to menu} \predicatesummary{win_process_modules}{1}{Win32 get .exe and .dll files of the process} \predicatesummary{win_shell}{2}{Win32: open document through Shell} \predicatesummary{win_shell}{3}{Win32: open document through Shell} \predicatesummary{win_registry_get_value}{3}{Win32: get registry value} \predicatesummary{win_get_user_preferred_ui_languages}{2}{Win32: get language preferences} \predicatesummary{win_window_color}{2}{Win32: change colors of console window} \predicatesummary{win_window_pos}{1}{Win32: change size and position of window} \predicatesummary{window_title}{2}{Win32: change title of window} \predicatesummary{with_mutex}{2}{Run goal while holding mutex} \predicatesummary{with_output_to}{2}{Write to strings and more} \predicatesummary{with_quasi_quotation_input}{3}{Parse quasi quotation from stream} \predicatesummary{with_tty_raw}{1}{Run goal with terminal in raw mode} \predicatesummary{working_directory}{2}{Query/change CWD} \predicatesummary{write}{1}{Write term} \predicatesummary{write}{2}{Write term to stream} \predicatesummary{writeln}{1}{Write term, followed by a newline} \predicatesummary{writeln}{2}{Write term, followed by a newline to a stream} \predicatesummary{write_canonical}{1}{Write a term with quotes, ignore operators} \predicatesummary{write_canonical}{2}{Write a term with quotes, ignore operators on a stream} \predicatesummary{write_length}{3}{Dermine \#characters to output a term} \predicatesummary{write_term}{2}{Write term with options} \predicatesummary{write_term}{3}{Write term with options to stream} \predicatesummary{writef}{1}{Formatted write} \predicatesummary{writef}{2}{Formatted write on stream} \predicatesummary{writeq}{1}{Write term, insert quotes} \predicatesummary{writeq}{2}{Write term, insert quotes on stream} \end{summarylist} \input{lib/libsummary.tex} \pagebreak \section{Arithmetic Functions} \label{sec:funcsummary} \begin{summarylist}{ll} \opfuncsummary{\Stimes}{2}{yfx}{400}{Multiplication} \opfuncsummary{\Spow}{2}{xfx}{200}{Power function} \opfuncsummary{\Splus}{1}{fx}{500}{Unary plus (No-op)} \opfuncsummary{\Splus}{2}{yfx}{500}{Addition} \opfuncsummary{\Sminus}{1}{fx}{500}{Unary minus} \opfuncsummary{\Sminus}{2}{yfx}{500}{Subtraction} \opfuncsummary{\Sdiv}{2}{yfx}{400}{Division} \opfuncsummary{\Sidiv}{2}{yfx}{400}{Integer division} \opfuncsummary{\Sand}{2}{yfx}{500}{Bitwise and} \opfuncsummary{\Slshift}{2}{yfx}{400}{Bitwise left shift} \opfuncsummary{\Srshift}{2}{yfx}{400}{Bitwise right shift} \functionsummary{\Sdot}{2}{List of one character: character code} \opfuncsummary{\Sneg}{1}{fx}{500}{Bitwise negation} \opfuncsummary{\Sor}{2}{yfx}{500}{Bitwise or} \opfuncsummary{\Shat}{2}{xfy}{200}{Power function} \functionsummary{abs}{1}{Absolute value} \functionsummary{acos}{1}{Inverse (arc) cosine} \functionsummary{acosh}{1}{Inverse hyperbolic cosine} \functionsummary{asin}{1}{Inverse (arc) sine} \functionsummary{asinh}{1}{Inverse (arc) sine} \functionsummary{atan}{1}{Inverse hyperbolic sine} \functionsummary{atan}{2}{Rectangular to polar conversion} \functionsummary{atanh}{1}{Inverse hyperbolic tangent} \functionsummary{atan2}{2}{Rectangular to polar conversion} \functionsummary{ceil}{1}{Smallest integer larger than arg} \functionsummary{ceiling}{1}{Smallest integer larger than arg} \functionsummary{cos}{1}{Cosine} \functionsummary{cosh}{1}{Hyperbolic cosine} \functionsummary{copysign}{2}{Apply sign of N2 to N1} \functionsummary{cputime}{0}{Get CPU time} \functionsummary{denominator}{1}{Denominator of a rational number (N/D)} \functionsummary{div}{2}{Integer division} \functionsummary{e}{0}{Mathematical constant} \functionsummary{erf}{1}{Gauss error function} \functionsummary{erfc}{1}{Complementary error function} \functionsummary{epsilon}{0}{Floating point precision} \functionsummary{eval}{1}{Evaluate term as expression} \functionsummary{exp}{1}{Exponent (base $e$)} \functionsummary{float}{1}{Explicitly convert to float} \functionsummary{float_fractional_part}{1}{Fractional part of a float} \functionsummary{float_integer_part}{1}{Integer part of a float} \functionsummary{floor}{1}{Largest integer below argument} \functionsummary{gcd}{2}{Greatest common divisor} \functionsummary{getbit}{2}{Get bit at index from large integer} \functionsummary{inf}{0}{Positive infinity} \functionsummary{integer}{1}{Round to nearest integer} \functionsummary{lgamma}{1}{Log of gamma function} \functionsummary{log}{1}{Natural logarithm} \functionsummary{log10}{1}{10 base logarithm} \functionsummary{lcm}{2}{Least Common Multiple} \functionsummary{lsb}{1}{Least significant bit} \functionsummary{max}{2}{Maximum of two numbers} \functionsummary{min}{2}{Minimum of two numbers} \functionsummary{msb}{1}{Most significant bit} \opfuncsummary{mod}{2}{xfx}{300}{Remainder of division} \functionsummary{nan}{0}{Not a Number (NaN)} \functionsummary{nexttoward}{2}{Next float in some direction} \functionsummary{numerator}{1}{Numerator of a rational number (N/D)} \functionsummary{powm}{3}{Integer exponent and modulo} \functionsummary{random}{1}{Generate random number} \functionsummary{random_float}{0}{Generate random number} \functionsummary{rational}{1}{Convert to rational number} \functionsummary{rationalize}{1}{Convert to rational number} \functionsummary{rdiv}{2}{Ration number division} \functionsummary{rem}{2}{Remainder of division} \functionsummary{round}{1}{Round to nearest integer} \functionsummary{roundtoward}{2}{Float arithmetic with specified rounding} \functionsummary{truncate}{1}{Truncate float to integer} \functionsummary{pi}{0}{Mathematical constant} \functionsummary{popcount}{1}{Count 1s in a bitvector} \functionsummary{sign}{1}{Extract sign of value} \functionsummary{sin}{1}{Sine} \functionsummary{sinh}{1}{Hyperbolic sine} \functionsummary{sqrt}{1}{Square root} \functionsummary{tan}{1}{Tangent} \functionsummary{tanh}{1}{Hyperbolic tangent} \opfuncsummary{xor}{2}{yfx}{400}{Bitwise exclusive or} \end{summarylist} \pagebreak \section{Operators} \label{sec:opsummary} \begin{summarylist}{lrD{f}{f}{-1}l} \opsummary{1}{fx}{\Sdollar}{Bind top-level variable} \opsummary{200}{xfy}{\Shat}{Existential qualification} \opsummary{200}{xfy}{\Shat}{Arithmetic function} \opsummary{300}{xfx}{mod}{Arithmetic function} \opsummary{400}{yfx}{\Stimes}{Arithmetic function} \opsummary{400}{yfx}{\Sdiv}{Arithmetic function} \opsummary{400}{yfx}{\Sidiv}{Arithmetic function} \opsummary{400}{yfx}{\Slshift}{Arithmetic function} \opsummary{400}{yfx}{\Srshift}{Arithmetic function} \opsummary{400}{yfx}{xor}{Arithmetic function} \opsummary{500}{fx}{\Splus}{Arithmetic function} \opsummary{500}{fx}{\Sminus}{Arithmetic function} \opsummary{500}{fx}{\Squest}{XPCE: obtainer} \opsummary{500}{fx}{\Sneg}{Arithmetic function} \opsummary{500}{yfx}{\Splus}{Arithmetic function} \opsummary{500}{yfx}{\Sminus}{Arithmetic function} \opsummary{500}{yfx}{\Sand}{Arithmetic function} \opsummary{500}{yfx}{\Sor}{Arithmetic function} \opsummary{600}{xfy}{\Smodule}{module:term separator} \opsummary{700}{xfx}{\Slt}{Predicate} \opsummary{700}{xfx}{\Seq}{Predicate} \opsummary{700}{xfx}{\Suniv}{Predicate} \opsummary{700}{xfx}{\Saeq}{Predicate} \opsummary{700}{xfx}{\Slt}{Predicate} \opsummary{700}{xfx}{\Sequal}{Predicate} \opsummary{700}{xfx}{\Sstructeq}{Predicate} \opsummary{700}{xfx}{\Sane}{Predicate} \opsummary{700}{xfx}{\Sgt}{Predicate} \opsummary{700}{xfx}{\Sge}{Predicate} \opsummary{700}{xfx}{\Stlt}{Predicate} \opsummary{700}{xfx}{\Stle}{Predicate} \opsummary{700}{xfx}{\Stgt}{Predicate} \opsummary{700}{xfx}{\Stge}{Predicate} \opsummary{700}{xfx}{as}{Predicate} \opsummary{700}{xfx}{is}{Predicate} \opsummary{700}{xfx}{\Sne}{Predicate} \opsummary{700}{xfx}{\Snequal}{Predicate} \opsummary{700}{xfx}{\Sstructeq}{Predicate} \opsummary{900}{fy}{not}{Predicate} \opsummary{900}{fy}{\Snot}{Predicate} \opsummary{1000}{xfy}{\Scomma}{Predicate} \opsummary{1050}{xfy}{\Sifthen}{Predicate} \opsummary{1050}{xfy}{\Ssoftcut}{Predicate} \opsummary{1100}{xfy}{\Ssemicolon}{Predicate} \opsummary{1105}{xfy}{\Sbar}{DCG disjunction} \opsummary{1150}{fx}{discontiguous}{Directive} \opsummary{1150}{fx}{dynamic}{Directive} \opsummary{1150}{fx}{module_transparent}{Directive} \opsummary{1150}{fx}{meta_predicate}{Head} \opsummary{1150}{fx}{multifile}{Directive} \opsummary{1150}{fx}{thread_local}{Directive} \opsummary{1150}{fx}{volatile}{Directive} \opsummary{1150}{fx}{initialization}{Directive} \opsummary{1200}{fx}{\Sneck}{Introduces a directive} \opsummary{1200}{fx}{\Sdirective}{Introduces a directive} \opsummary{1200}{xfx}{\Sdcg}{DCGrammar: rewrite} \opsummary{1200}{xfx}{\Sneck}{head \Sneck{} body. separator} \end{summarylist}