Reference Manual
Core Prolog
Control
| !/0 | (cut) removes choicepoints | 
| $exported_proc/3 | checks whether the given procedure is exported | 
| $findterm/5 | locates the given term on the heap | 
| $nextproc/3 | retrieves the next procedure in the name table | 
| $procinfo/5 | retrieves information about the given procedure | 
| $resolve_module/4 | finds the module which exports the given procedure | 
| ,/2 | conjunction of two goals | 
| ->/2 | if-then, and if-then-else | 
| :/2 | calls a goal in the specified module | 
| ;/2 | disjunction of two goals | 
| </2 | The left expression is less than the right expression | 
| =:=/2 | The left and right expressions are equal | 
| =</2 | The left expression is less than or equal to the right | 
| =\=/2 | The left and right expressions are not equal | 
| >/2 | The left expression is greater than the right expression | 
| >=/2 | The left expression is greater than or equal to the right | 
| \+/1 | tests whether a goal fails | 
| abolish/[1,2,3] | remove a procedure from the database; remove a procedure from the database; remove a procedure from the database | 
| abort/0 | return execution immediately to the Prolog shell | 
| all_ntbl_entries/4 | retrieves all name table entries | 
| all_procedures/4 | retrieves all Prolog- or C-defined procedures | 
| als_system/1 | Provides system environmental information. | 
| b_findall/4 | bound list of solutions for a goal, not sorted | 
| bagof/3 | all solutions for a goal, not sorted | 
| call/1 | calls a goal | 
| callWithDelayedInterrupt/[1,2] | call goal, setting delayed interrupt | 
| canon_path/2 | canonicalizes a path name | 
| catch/3 | execute a goal, specifying an exception handler | 
| change_cwd/1 | change the current working directory | 
| command_line/1 | provides access to the prolog system start-up command line | 
| compiletime/0 | Runs goals only at compile time | 
| curmod/1 | get the current module | 
| current_op/3 | retrieve current operator definitions | 
| current_prolog_flag/2 | retrieve value(s) of prolog flag(s) | 
| exists_file/1 | tests whether a file exists | 
| fail/0 | always fails | 
| filename_equal/2 | OS portable check for equality of file names | 
| findall/3 | all solutions for a goal, not sorted | 
| forcePrologInterrupt/0 | force interrupt on next call | 
| free_gv/1 | release store associated with a named global variable | 
| gc/0 | invokes the garbage compactor | 
| getDirEntries/3 | returns the file in a directory which matches a pattern | 
| getPrologInterrupt/1 | determine the type of a Prolog interrupt | 
| get_cwd/1 | returns the current working directory | 
| getenv/2 | gets the value of the given os environment variable | 
| halt/0 | exit ALS Prolog | 
| is/2 | evaluates an arithmetic expression | 
| leash/1 | set which ports are leashed for the debugger | 
| make_det_gv/1 | create named global variable and access methods which preserve instantiations of structures | 
| make_gv/1 | create named global variable and access methods | 
| modules/2 | get the use list of a module | 
| must_exist_file/1 | raises a system_error if exists_file fails | 
| nospy/[0,1] | removes all spy points; removes a spy point | 
| not/1 | tests whether a goal fails | 
| notrace/0 | turn off tracing | 
| op/3 | define operator associativity and precedence | 
| procedures/4 | retrieves all Prolog-defined procedures | 
| remove_file/1 | removes a file from the current working directory | 
| repeat/0 | always succeed upon backtracking | 
| rexec/2 | Execute an operating system command remotely, or possibly locally. | 
| save_image/2 | package an application | 
| setPrologInterrupt/1 | establish the type of a Prolog interrupt | 
| set_prolog_flag/2 | set value of a Prolog flag | 
| setof/3 | all unique solutions for a goal, sorted | 
| spy/[0,1] | enable spy points; sets a spy point | 
| statistics/0 | display memory allocation information | 
| statistics/2 | display runtime statistics | 
| sys_env/3 | Provides brief system environmental information. | 
| system/1 | Executes the specified OS shell command | 
| throw/1 | give control to an exception handler | 
| trace/[0,1] | turn on tracing; trace the execution of a goal | 
| true/0 | always succeeds | 
Input Output
| $access/2 | determine accessibility of a file | 
| at_end_of_stream/[0,1] | test for end of the curent input stream; test for end of a specific input stream | 
| bufread/[2,3] | runs the Prolog parser on a string of text; similar to bufread/2, allowing read options | 
| bufwrite/2 | formatted write to strings | 
| bufwriteq/2 | formatted write to strings with quoting | 
| chdir/1 | changes the current directory to the specified directory | 
| close/[1,2] | close an open stream; close an open stream with options | 
| consult/[1,2] | load a Prolog file; load a Prolog file, with options | 
| consultq/1 | load a Prolog file, without messages | 
| curl/[1,2,3] | Access to the internet via the curl package with URL, Options, Target in one list; Access to the internet via the curl package with separate URL arg, combined Options, Target in one list; Access to the internet via the curl package with separate URL, Options, Target args | 
| current_input/1 | retrieve current input stream | 
| current_output/1 | retrieve current output stream | 
| date/1 | gets the local date | 
| date_less/2 | compares two dates | 
| date_pattern/4 | describes the pattern term for date display | 
| datetime/2 | gets the local system date and time | 
| datetime_less/2 | compares two datetimes | 
| display/1 | write term to current output stream in canonical form | 
| flush_input/1 | discard buffer contents of stream | 
| flush_output/[0,1] | flush current output stream; flush specific output stream | 
| get/1 | read the next printable character | 
| get0/1 | read the next character | 
| get_char/[1,2] | read a character from current input stream; read character from a specific stream | 
| get_code/[1,2] | read a character code from current input stream; read character code from a specific stream | 
| gm_datetime/2 | gets the Greenwich mean time(UTC) | 
| http/3 | REST-inspired user-level interface for curl | 
| nl/[0,1] | output a newline to the current output stream; output a newline to a specified output stream | 
| old_bufread/2 | similar to bufread/2, giving additional information on variables | 
| open/[3,4] | open a stream; open a stream with options | 
| peek_char/[1,2] | obtain char from stream | 
| peek_code/[1,2] | obtain char code from stream; obtain char from stream | 
| poll/2 | Determine whether I/O is possible | 
| printf/[1,2,3,4] | print out a string to the current output; print out a string with arguments; print out a string with a format and arguments; print out string with format, arguments, options | 
| printf_opt/3 | print out string with format, arguments, options | 
| put/1 | write out a character | 
| put_atom/[1,2] | output an atom to the current output stream; output an atom to a specific output stream | 
| put_char/[1,2] | output a character to the current output stream; output a character to a specific output stream | 
| put_code/[1,2] | output a character code to the current output stream; output a character code to a specific output stream | 
| put_string/[1,2] | output a string to the current output stream; output a string to a specific output stream | 
| read/[1,2] | read a term from the current input stream; read a term from specified stream | 
| read_term/[2,3] | read term from current input with options; read term from specified stream with options | 
| reconsult/1 | load a Prolog file, updating the prolog database | 
| see/1 | sets the current input stream | 
| seeing/1 | returns the name of the current input stream | 
| seen/0 | closes the current input stream | 
| set_date_pattern/1 | changes the pattern term for date display | 
| set_depth_computation/2 | set method of computing term depth | 
| set_input/1 | set current input stream | 
| set_line_length/2 | set length of line for output stream | 
| set_max_depth/2 | set maximum depth that terms will be written to | 
| set_output/1 | set current output stream | 
| set_stream_position/2 | seek to a new position in a stream | 
| skip/1 | discard all input characters until specified character | 
| sprintf/3 | formatted write to atoms and strings | 
| stream_position/[2,3] | reposition a stream | 
| stream_property/2 | retrieve streams and their properties | 
| tab/1 | prints out a specified number of spaces | 
| tell/1 | sets the standard output stream | 
| telling/1 | returns the name of the standard output stream | 
| time/1 | gets the local system time | 
| time_less/2 | compares two times | 
| told/0 | closes the standard output stream | 
| ttyflush/0 | forces all buffered output to the screen | 
| valid_date/[1,3] | determines if a date pattern represents a valid date | 
| write/[1,2] | write term to current output stream; write term to specified stream | 
| write_canonical/[1,2] | write term to current output stream in canonical form(no operators); write term to specified stream in canonical form | 
| write_term/[2,3] | write term to current output stream with options; write term to specified output stream with options | 
| writeq/[1,2] | write term to current output stream so that it may be read back in; write term to specified stream so that it may be read back in | 
Prolog Database
| assert/[1,2] | adds a clause to a procedure; adds a clause to a procedure, returning a DB Ref | 
| asserta/[1,2] | adds a clause to the beginning of a procedure; adds a clause to the beginning of a procedure, returning a DB Ref | 
| assertz/[1,2] | adds a clause to the end of a procedure; adds a clause to the end of a procedure, returning a DB Ref | 
| clause/[2,3] | retrieve a clause; retrieve a clause with a database reference | 
| dynamic/1 | declare a procedure to be dynamic | 
| erase/1 | removes a clause from the database | 
| instance/2 | retrieve a clause from the database reference | 
| listing/[0,1] | Prints all clauses; Prints clauses matching the specified template | 
| module_closure/[2,3] | creates a module closure; creates a module closure for the specified procedure | 
| retract/[1,2] | removes a clause from the database; removes a clause specified by a database reference | 
Terms
| =../2 | composes/decomposes structures from/to components | 
| =/2 | unify two terms | 
| ==/2 | terms are identical | 
| @</2 | The left argument is before the right argument | 
| @=</2 | The left argument is not after the right argument | 
| @>/2 | The left argument is after the right argument | 
| @>=/2 | The left argument is not before the right argument | 
| \=/2 | test if two items are non-unifiable | 
| \==/2 | terms are not identical | 
| append/3 | append two lists | 
| arg/3 | access the arguments of a structured term | 
| atom/1 | the term is an atom | 
| atom_chars/2 | convert between atoms and the list of characters representing the atom | 
| atom_codes/2 | convert between atoms and the list of character codes representing the atom | 
| atomic/1 | the term is an atom or a number | 
| char_code/2 | convert between characters and codes | 
| compare/3 | compares two terms in the standard order | 
| copy_term/2 | make copy of a term | 
| dappend/3 | append two lists | 
| dmember/2 | list membership | 
| dreverse/2 | determinate list reversal | 
| float/1 | the term is a floating point number | 
| functor/3 | builds structures and retrieves information about them | 
| gensym/2 | generates families of unique symbols | 
| integer/1 | the term is an integer | 
| keysort/2 | sorts a list of Key-Data pairs | 
| length/2 | count the number of elements in a list | 
| make_hash_table/1 | create a hash table and access predicates | 
| mangle/3 | destructively modify a structure | 
| member/2 | list membership | 
| name/2 | converts strings to atoms and atoms to strings | 
| nonvar/1 | the variable is instantiated | 
| nth/3 | returns the nth element of a list | 
| number/1 | the term is an integer or a floating point | 
| number_chars/2 | convert between a number and the list of characters which represent the number | 
| number_codes/2 | convert between a number and the list of character codes which represent the number | 
| recorda/3 | records item in internal term database | 
| recorded/3 | retrieves item from internal term database | 
| recordz/3 | records item in internal term database | 
| reverse/2 | list reversal | 
| sort/2 | sorts a list of terms | 
| sub_atom/5 | dissect an atom | 
| term_chars/2 | convert between a term and the list of characters which represent the term | 
| term_codes/2 | convert between a term and the list of character codes which represent the term | 
| var/1 | the variable is unbound | 
UIAs
| $uia_alloc/2 | allocates a UIA of specified length | 
| $uia_clip/2 | clip the given UIA | 
| $uia_peek/4 | returns the specified region of a UIA | 
| $uia_peekb/3 | returns the specified byte of a UIA | 
| $uia_peekd/3 | returns the specified double of a UIA | 
| $uia_peekl/3 | returns the specified long word of a UIA | 
| $uia_peeks/3 | returns the specified substring of a UIA | 
| $uia_peeks/4 | returns the specified substring of a UIA | 
| $uia_peekw/3 | returns the specified word of a UIA | 
| $uia_poke/4 | modifies the specified region of a UIA | 
| $uia_pokeb/3 | modifies the specified byte of a UIA | 
| $uia_poked/3 | modifies the specified double of a UIA | 
| $uia_pokel/3 | modifies the specified long word of a UIA | 
| $uia_pokes/3 | modifies the specified substring of a UIA | 
| $uia_pokew/3 | modifies the specified word of a UIA | 
| $uia_size/2 | obtains the actual size of a UIA | 
ALS Library
Arithmetic
| max/3 | Returns the maximum of results of evaluating two arithmetic Exprs | 
| max_vector/3 | Returns the result of iteratively taking the max of Left,Right | 
| maximum/2 | Returns the maximum of the evaluations of the expressions on ExprList | 
| min/3 | Returns the minimum of results of evaluating two arithmetic Exprs | 
| min_vector/3 | Returns the result of iteratively taking the min of Left,Right | 
| minimum/2 | Returns the minimum of the evaluations of the expressions on ExprList | 
| prodlist/2 | Returns the product of the evaluations of the numbers on ExprList | 
| sum_square_diffs/3 | Returns the sum of squares of differences of XList,YList | 
| sum_squares/2 | Returns the sum of the squares of the evaluations of the numbers on ExprList | 
| sumlist/2 | Returns the sum of the evaluations of the numbers on ExprList | 
Atoms
| cat_together_seplines/2 | convert list of atoms to single atom with eoln separating atom entries | 
| cat_together_spaced/2 | convert list of atoms to single atom with space separating atom entries | 
| catenate/[2,3] | catenates a list of atoms; catenates two atoms, or an atom and number, to produce a third atom | 
| prefix_dir/3 | prefix Dir to each (atomic) item on List | 
| prefix_to/3 | catenate Atom to the front of each element on a List of atoms | 
| strip_prefix/3 | strip a fixed-length prefix from a list of atoms | 
| trim_atoms/3 | truncates a list of atoms | 
Formatting
| columns/[1,2,3] | Output ListOfRows as a minimal columnar array of terms; Like columns/1, outputting to a given stream; Output ListOfRows as a columnized rectangular array of terms | 
Lists
| append/2 | appends a list of lists together | 
| at_most_n/3 | returns initial segment of list of length =< N | 
| change_nth/3 | destructively changes the Nth element of a list | 
| check_default/4 | looks up an equation on a list, with a default | 
| check_default_del/5 | looks up a tagged equation on a List, and deletes it | 
| deleteNth/3 | deletes the Nth element of a list | 
| delete_1st/3 | deletes the left-most entry of Item in List | 
| encode_list/3 | encodes the elements of a list with provided codes | 
| flatten/2 | flattens a nested list | 
| get_list_tail/3 | returns the tail of a list determined by an element | 
| init_seg_list/2 | determines if one list is an initial segment of another | 
| insert_item_in_list/3 | interleaves an arbitrary term between elements of a list | 
| insert_spaces/2 | interleaves a quoted blank between elements of a list | 
| int_diff/4 | returns the intersection and one difference of two lists | 
| intersect/[2,3] | returns the intersection of a list of lists; returns the intersection of two lists | 
| is_length/2 | invertible length predicate | 
| last/2 | returns last element of a list | 
| list_diff/3 | returns the ordered difference of two lists | 
| list_diffs/4 | returns both ordered differences of two lists | 
| mangle_change_tagged/3 | destructively changes the value of a tagged eqn | 
| merge_in_list/3 | merges two list together | 
| merge_plists/3 | recursively merges two tagged equation lists | 
| merge_tagged_lists/3 | recursively merges two tagged equation lists | 
| n_of/3 | creates a list of N copies of an item | 
| nobind_member/2 | tests list membership without binding any variables | 
| nonmember/2 | tests for the failure of membership | 
| nth_tail/4 | returns the nth head and tail of a list | 
| number_list/[2,3] | creates a numbered list from a source list; numbers the elements of a list | 
| remove_tagged/3 | removes tagged equations from a list | 
| sorted_merge/[2,3] | returns the sorted union of a list of lists; returns the sorted union of two lists | 
| split_ll_at_start/5 | splits a list of atoms according to an initial sub-atom | 
| split_ll_by_blank/3 | splits a list of atoms by the first null atom | 
| struct_lookup_subst/4 | performs substs for structs package constructors | 
| sublist/4 | extracts a sublist from a list | 
| subset/2 | determines if one list is a subset of another | 
| subst_nth/4 | non-destructively changes the Nth element of a list | 
| subst_tagged/4 | NON-destructively changes the value of a tagged eqn | 
| symmetric_diff/3 | returns the symmetric difference of two lists | 
| union/3 | returns the ordered union of two lists | 
Strings
| asplit/4 | divides an atom as determined by a character | 
| asplit00/4 | divides a list of character codes as det. by a list of char codes | 
| atomic_to_uia/2 | create a UIA corresponding to an atomic item | 
| change_case_sym/2 | converts the case of characters in a symbol, based on the first | 
| char_in/3 | Locates the position of a character in an atom. | 
| cnvrt_to_UIA/2 | create a UIA corresponding to an arbitrary term | 
| convert_to_uc/2 | converts all items in a list of terms to uppercase | 
| head/4 | splits an list into segments determined by a character code | 
| head0/4 | splits a character code list into segments determined by a code | 
| make_lc/2 | converts a Prolog string to all lowercase character (codes) | 
| make_lc_sym/2 | converts an atom or UIA to all lowercase characters | 
| make_uc/2 | converts a Prolog string to all uppercase character (codes) | 
| make_uc_sym/2 | converts an atom or UIA to all uppercase characters | 
| read_to/5 | splits a string according to one of several possible chars | 
| read_to_blank/3 | splits a string around the leftmost occurrence of blank | 
| replace_char_atom/4 | Replace occurrences of a char in an atom by another char | 
| replace_char_string/4 | Replace occurrences of a char in a string by another char | 
| same_uc/2 | Term1,Term2 unify after converting all characters to upper case | 
| string_to_sized_uia/3 | creates a UIA containing chars corresponding to a string | 
| string_to_uia/[2,3] | creates a UIA corresponding to an arbitrary string; insert list of char (codes) into a UIA | 
| strip_both_white/2 | strips leading and trailing white space chars from a string | 
| strip_both_white_atom/2 | strips leading and trailing white space chars from a prolog atom | 
| strip_tail_white/2 | strips trailing white space from a string | 
| strip_white/2 | strips leading white space from a string | 
| truncate/3 | creates a UIA truncating the input expression | 
Web
| grab_html_tokens/2 | extracts all Tokens from the File | 
| grab_pxml/2 | reads the pxml term found in file Path | 
| grab_pxml_with_paths/5 | read PXML term in FilePath, tagged component tags and paths | 
| grab_pxml_with_tagged/3 | read PXML term in FilePath, including tagged components | 
| parse_html_toks_to_pxml/5 | parse a list of HTML-tokens | 
| parse_html_toks_to_pxml_vals/3 | parse a list of HTML-tokens | 
| read_pxml_comment/3 | read an HTML comment into PXML | 
| read_pxml_term/7 | - read a PXML term out of Tokens | 
| read_tokens/2 | extracts all Tokens from a stream | 
| tokenize_file/2 | extracts all Tokens from the File | 
| unary_tag/1 | specifies syntactic roles tags | 
C Interface
C Data
| $c_examine/2 | Examines the contents of a C data area or a UIA | 
| $c_free/1 | Frees a C data area | 
| $c_malloc/2 | Allocates a C data area using the system malloc call | 
| $c_set/2 | Modifies the contents of a C data area or a UIA | 
| c_alloc/2 | allocate a UIA that can hold C data | 
| c_alloc_abs/2 | allocate a C-malloced data area | 
| c_allocn/3 | allocate a UIA to hold Num items | 
| c_allocn_abs/3 | allocated a C-malloced area to hold Num items | 
| c_call/3 | calls a C function | 
| c_const/2 | get the value of a C defined constant | 
| c_create/3 | equivalent to c_alloc/2 plus c_set/3 | 
| c_create_abs/3 | equivalent to c_alloc_abs/2 plus c_set/3 | 
| c_create_arglist/[2,3] | create an initialized ARGLIST structure for X Toolkit | 
| c_createn/4 | allocate and initialize an array of data values in a UIA | 
| c_createn_abs/4 | allocate and initialize an array of data values in a C area | 
| c_examine/3 | examine a UIA or C data area | 
| c_examine/3 | multiply examine a UIA or C data area | 
| c_examine_raw/4 | extract raw chars from a UIA or C data area | 
| c_examine_str/4 | extract chars from a UIA or C data area | 
| c_examinen/4 | examine a component of an array | 
| c_examinen/4 | multiply examine a component of an array | 
| c_free/1 | applied to UIA does nothing (freeing handled by gc) | 
| c_free_abs/1 | mfree the C area pointed by Ptr. | 
| c_free_arglist/1 | perform c_free_abs on each item of PtrList | 
| c_rconst/2 | get the value of a C defined runtime constant | 
| c_set/3 | modify a UIA or C data area | 
| c_set/3 | multiply modify a UIA or C data area | 
| c_set_raw/4 | writes chars from a UIA into a UIA or C data area | 
| c_set_str/4 | insert C string in a UIA or C data area | 
| c_setn/4 | perform c_set/3 on a component of an array | 
| c_setn/4 | multiply perform c_set/3 on a component of an array | 
ALSDev
Development Env.
| Edit Menu | Select actions while editing a file | 
| File Menu | Select a file for editing | 
| Find Dialog | Search and replace in edit windows | 
| Listener Window | Primary interaction window | 
| Preferences Dialog | Set various IDE preferences | 
| Prolog Menu | Manage prolog projects and settings | 
| Prolog Projects Menu | Manage prolog projects and settings | 
| Tools Menu | Invoke various useful tools | 
Gui Library
| add_to_main_menu_entry/2 | add an item to a menu entry | 
| atomic_input_dialog/[2,3,4] | input atoms and numbers | 
| create_image/[2,3] | create an image from a GIF file | 
| display_image/[1,3] | display an image | 
| extend_cascade/3 | extend a menu cascade | 
| extend_main_menubar/2 | add entries to the main menubar | 
| file_select_dialog/ [1,2,3] | select a file | 
| info_dialog/ [1,2,3] | present an information dialog | 
| init_tk_alslib/[0,1,2] | initialize GUI library, creating Tcl interpreter | 
| menu_entries_list/[2,3] | obtain menu entries | 
| path_to_menu_entry/[2,3,4] | obtain path to a menu entry | 
| popup_select_items/ [2,3,4] | present popup selection list | 
| yes_no_dialog/[2,3,4,6] | present a yes/no dialog | 
Prolog Objects
| accessObjStruct/3 | access the value of a slot in an object | 
| create_object/2 | create an object | 
| defStruct/2 | specify an abstract data type | 
| defineClass/1 | specify an ObjectPro class | 
| send/2 | send a message to an object | 
| setObjStruct/3 | set the value of a slot in an object | 
TclTk Interface
| prolog | call a prolog term from Tcl | 
| tcl_call/3 | execute Tcl script | 
| tcl_coerce_atom/3 | convert Tcl entity to Prolog atom | 
| tcl_coerce_list/3 | convert Tcl entity to Prolog list | 
| tcl_coerce_number/3 | convert Tcl entity to Prolog number | 
| tcl_delete/1 | delete a Tcl interpreter | 
| tcl_delete_all/0 | delete all Tcl interpreters | 
| tcl_eval/3 | evaluate Tcl script | 
| tcl_new/1 | create a Tcl interpreter | 
| tk_new/1 | create a Tcl interpreter initialized for Tk |