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
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