Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

// This list follows the structure of built-in predicates as specified at:
// http://eu.swi-prolog.org/pldoc/man?section=builtin
// http://eu.swi-prolog.org/pldoc/man?section=libpl
// All predicates listed below are supported in GOAL; those not listed are not.

// true, cut, fail, conjunction, ;_, not, and var operators.basic operators
true/0
false/0
!/0
fail/0
not/1

// operators used within context of operators that quantify over variables.
max/1
min/1
count/1
sum/1
set/1
bag/1

...

// SWI 4.6: Verify Type of a Term
var/1
nonvar/1
integer/1
float/1
rational/1
rational/3
number/1
atom/1
blob/2 // new in SWI7.6.4
string/1
atomic/1
compound/1
callable/1 // new in SWI7.6.4
ground/1
cyclic_term/1
acyclic_term/1

// SWI 4.7: Comparison and Unification of Terms
compare/3
unify_with_occurs_check/2
subsumes_term/2 // new in SWI7.6.4
term_subsumer/3 // new in SWI7.6.4
unifiable/2

// new in SWI7.6.4// SWI 4.8SWI 4.8: Control Predicates
// already defined at the top

// SWI 4.9: Meta-Call Predicates
// call has variable num of args but up to 8 seems supported
call/1
call/2
call/3
call/4
call/5
call/6
call/7
call/8
apply/2 // new in SWI7.6.4
// not/1 is already defined
once/1
ignore/1
call_with_depth_limit/3
call_with_inference_limit/3 // new in SWI7.6.4
setup_call_cleanup/3
setup_call_catcher_cleanup/4
call_cleanup/2
call_cleanup/3

...

// SWI 4.12: we do not support handling signals
// SWI 4.13: DCG Grammar rules
phrase/2
phrase/3
call_dcg/3 // new in SWI7.6.4

// SWI 4.14 - database is purposely restricted (handled by GOAL)
// SWI 4.15 - idem for predicate properties
// (dynamic/1 is the only directive that is supported; handled in SemanticTools)
// SWI 4.16 - program examination does not seem useful

// SWI 4.17: Input and output
open/4
open/3
open_null_stream/1
close/1
close/2
stream_property/2
current_stream/3
is_stream/1
stream_pair/3 // new in SWI7.6.4
set_stream_position/2
stream_position_data/3
seek/4
set_stream/2
set_prolog_IO/3
see/1 // new in SWI7.6.4
tell/1
append// new in SWI7.6.4
append/1 // new in SWI7.6.4
seeing/1 // new in SWI7.6.4
telling/1 // new in SWI7.6.4
seen/0 // new in SWI7.6.4
told/0 // new in SWI7.6.41
seeing/1
telling/1
seen/0
told/0
set_input/1 // new in SWI7.6.4
set_output/1 // new in SWI7.6.4
current_input/1 // new in SWI7.6.4
current_output/1 // new in SWI7.6.4
with_output_to/2
// did not include fast binary I/O

...

// SWI 4.19: Primitive character I/O
nl/0
nl/1
put_byte/1
put_byte/2
put_char/1
put_char/2
put_code/1
put_code/2
tab/1
tab/2
flush_output/0
flush_output/1
// ttyflush not supported
get_byte/1
get_byte/2
get_code/1
get_code/2
get_char/1
get_char/2
peek_byte/1
peek_byte/2
peek_code/1
peek_code/2
peek_char/1
peek_char/2
peek_string/3 // new in SWI7.6.4
skip/1
skip/2
get_single_char/1
at_end_of_stream/0
at_end_of_stream/1
set_end_of_stream/1 // new in SWI7.6.4/1
copy_stream_data/3
copy_stream_data/2
fill_buffer/1 // new in SWI7.6.4
read_pending_codes/3 // new in SWI7.6.4
read_pending_chars/3 // new in SWI7.6.4

// SWI 4.20: Term reading and writing
write_term/2
write_term/3
write_length/3 // new in SWI7.6.4
write_canonical/1
write_canonical/2
write/1
write/2
writeq/1
writeq/2
writeln/1
writeln/2 // new in SWI7.6.4
print/1
print/2
portray/1
read/1
read/2
read_clause/2
read_term/2
read_term/3
read_term_from_atom/3
// read_history and prompts not included (no user input possible)

// SWI 4.21: Analysing and Constructing Terms (new in SWI7.6.4).21: Analysing and Constructing Terms
functor/3
arg/3
compound_name_arity/3
compound_name_arguments/3
numbervars/3
numbervars/4
var_number/2
term_variables/2
nonground/2
term_variables/3
term_singletons/2
copy_term/2
// non-logical operators not supported

// SWI 4.22: Analysing and Constructing Terms
atom_codes/2
atom_chars/2
char_code/2
number_chars/2
number_codes/2
atom_number/2 // new in SWI7.6.4
name/2
term_to_atom/2 // new in SWI7.6.4
atom_concat/3
atomic_concat/3 // new in SWI7.6.4
atomic_list_concat/2 // new in SWI7.6.4
atomic_list_concat/3 // new in SWI7.6.4
atomic_concat/3 // new in SWI7.6.4concat/3
atom_length/2 // new in SWI7.6.4
sub_atom/5 // new in SWI7.6.4
sub_atom_icasechk/3 // new in SWI7.6.4

// SWI 4.23 - localization support not included

...

// SWI 4.27: Arithmetic
between/3
succ/2
plus/3
divmod/3 // new in SWI7.6.4
nth_integer_root_and_remainder/4 // new in SWI7.6.4
abs/1
sign/1
copysign/2 // new in SWI7.6.4/2
max/2
min/2
random/1
random_float/0
round/1
integer/1
float/1
rational/1
rationalize/1
float_fractional_part/1
float_integer_part/1
truncate/1
floor/1
ceiling/1
ceil/1
sqrt/1
sin/1
cos/1
tan/1
asin/1
acos/1
atan/1
atan/2
atan2/2 // new in SWI7.6.4
sinh/1 // new in SWI7.6.4
cosh/1 // new in SWI7.6.4
tanh/1 // new in SWI7.6.4
asinh/1 // new in SWI7.6.4
acosh/1 // new in SWI7.6.4
atanh/1 // new in SWI7.6.4/1
log/1
log10/1
exp/1
powm/3
lgamma/1 // new in SWI7.6.4
erf/1 // new in SWI7.6.4
erfc/1 // new in SWI7.6.4
pi/0
e/0
epsilon/0
inf/0 // new in SWI7.6.4
nan/0 // new in SWI7.6.4
cputime/0
eval/1
msb/1
lsb/1
popcount/1
getbit/2 // new in SWI7.6.4/2

// SWI 4.28: Misc arithmetic support predicates
set_random/1
random_property/1 // new in SWI7.6.4
current_arithmetic_function/1 // new in SWI7.6.4

// SWI 4.29: Built-in list operations
is_list/1
memberchk/2
length/2
sort/2
sort/4 // new in SWI7.6.4
msort/2
keysort/2
predsort/3

// SWI 4.30 & 4.31: Finding all Solutions to a Goal
findall/3
findall/4 // new in SWI7.6.4
findnsols/4 // new in SWI7.6.4
findnsols/5 // new in SWI7.6.4/4
findnsols/5
bagof/3
setof/3
forall/2

// SWI 4.32: Formatted write
format/1
format/2
format/3
format_predicate/2
current_format_predicate/2

...

// SWI 4.35.2: Dealing with time and date (other OS predicates not supported)
get_time/1
stamp_date_time/3
date_time_stamp/2
date_time_value/3
format_time/3
format_time/4
parse_time/2
parse_time/3 // new in SWI7.6.4
day_of_the_week/2

// SWI 4.36: File System Interaction
access_file/2
exists_file/1
file_directory_name/2
file_base_name/2
same_file/2
exists_directory/1
delete_file/1
rename_file/2
size_file/2
time_file/2
absolute_file_name/2
absolute_file_name/3
is_absolute_file_name/1
file_name_extension/3
directory_files/2 // new in SWI7.6.4
expand_file_name/2
prolog_to_os_filename/2
read_link/3
tmp_file_stream/3 // new in SWI7.6.4
make_directory/1
delete_directory/1
working_directory/2
chdir/1

...

// SWI 4.44: Miscellaneous (new in SWI7.6.4)
dwim_match/2
dwim_match/3
wildcard_match/2
// sleep not supported at prolog level

// SWI 5.2.1: Predicates that operate on strings (new in SWI7.6.4)
atom_string/2
number_string/2
term_string/2
term_string/3
string_chars/2
string_codes/2
text_to_string/2
string_length/2
string_code/3
get_string_code/3
string_concat/3
split_string/4
sub_string/5
atomics_to_string/2
atomics_to_string/3
string_upper/2
string_lower/2
read_string/3
read_string/5
open_string/2

// SWI A.1: Aggregation operators
aggregate/3
aggregate/4
aggregate_all/3
aggregate_all/4
foreach/2 // new in SWI7.6.4
free_variables/4 // new in SWI7.6.4

// SWI A.2: Apply predicates on a list
include/3
exclude/3
partition/4
partition/5 // new in SWI7.6.4
maplist/2
maplist/3
maplist/4
maplist/5
convlist/3 // new in SWI7.6.4
foldl/4 // new in SWI7.6.4
foldl/5 // new in SWI7.6.4
foldl/6 // new in SWI7.6.4
foldl/7 // new in SWI7.6.45
foldl/6
foldl/7
scanl/4 // new in SWI7.6.4
scanl/5 // new in SWI7.6.4
scanl/6 // new in SWI7.6.4
scanl/7 // new in SWI7.6.4

// SWI A.3 - Association lists not supported at the moment
// SWI A.4 - Event notifications not supported
// SWI A.5 - Not supported as better native predicates are available
// SWI A.6 - Consistency checking not supported
// SWI A.7/A.8/A.9 - Constraint programming not supported
// SWI A.10 - CSV processing not supported at the moment
// SWI A.11 - Not supported as it is a replacement for the native format/3
// SWI A.12 - "" "" for print_message/2
// SWI A.13 - Generating unique identifiers is not supported
// SWI A.14 - External streams not supported at the moment

// SWI A.15: List Manipulation
member/2
append/3
append/2
prefix/2
select/3
selectchk/3
select/4
selectchk/4
nextto/3
delete/3
nth0/3
nth1/3
nth0/4
nth1/4
last/2
proper_length/2
same_length/2
reverse/2
permutation/2
flatten/2
max_member/2 // new in SWI7.6.4member/2
min_member/2 // new in SWI7.6.4
sum_list/2
max_list/2
min_list/2
numlist/3
is_set/1
list_to_set/2
intersection/3
union/3
subset/2
subtract/3

...

// SWI A.21: Ordered sets
is_ordset/1
ord_empty/1
ord_seteq/2
list_to_ord_set/2
ord_intersect/2
ord_disjoint/2
ord_intersection/2
ord_intersection/3
ord_intersection/4
ord_add_element/3
ord_del_element/3
ord_selectchk/2 // new in SWI7.6.4
ord_memberchk/2
ord_subset/2
ord_subtract/3
ord_union/2
ord_union/3
ord_union/4
ord_symdiff/3

...

// SWI A.29: Random numbers
random/1
random_between/3
random/3
setrand/1
getrand/1 // new in SWI7.6.4
maybe/0 // new in SWI7.6.4
maybe/1 // new in SWI7.6.4
maybe/2 // new in SWI7.6.4
random_perm2/4
random_member/2
random_select/3
randset/3
randseq/3
random_permutation/2

...