Predicate reference
===================
548 predicates — 183 ISO, 62 evaluable. Generated by
`util/gen_reference.py` from `help/0` in the built binary, so it cannot
drift from the build. Regenerate on release rather than editing by hand.
Jump to: [Core & terms](#core--terms) · [Control](#control) · [Arithmetic](#arithmetic) · [Streams & I/O](#streams--io) · [Formatting](#formatting) · [Database](#database) · [Maps](#maps) · [Attributed variables](#attributed-variables) · [Threads](#threads) · [Coroutining](#coroutining) · [Operating system](#operating-system) · [POSIX time](#posix-time) · [Regular expressions](#regular-expressions) · [CSV](#csv) · [Foreign function interface](#foreign-function-interface) · [library(builtins)](#librarybuiltins) · [library(iso_ext)](#libraryisoext) · [library(lists)](#librarylists) · [Other](#other)
### Core & terms
97 predicates
| Predicate | Template | |
|---|---|---|
| `=/2` | `=(+term,+term)` | ISO |
| `=../2` | `=..(+term,?list)` | ISO |
| `acyclic_term/1` | `acyclic_term(+term)` | ISO |
| `arg/3` | `arg(+integer,+term,?term)` | ISO |
| `atom/1` | `atom(+term)` | ISO |
| `atom_chars/2` | `atom_chars(?atom,?list)` | ISO |
| `atom_codes/2` | `atom_codes(?atom,?list)` | ISO |
| `atom_concat/3` | `atom_concat(+atom,+atom,?atom)` | ISO |
| `atom_length/2` | `atom_length(?list,?integer)` | ISO |
| `atom_lower/2` | `atom_lower(?atom,?atom)` | |
| `atom_upper/2` | `atom_upper(?atom,?atom)` | |
| `atomic/1` | `atomic(+term)` | ISO |
| `atomic_concat/3` | `atomic_concat(+atomic,+atomic,?atomic)` | |
| `atomic_list_concat/2` | `atomic_list_concat(+list,?atom)` | |
| `atomic_list_concat/3` | `atomic_list_concat(?list,+atomic,?atom)` | |
| `base64/3` | `base64(?string,?string,+list)` | |
| `between/3` | `between(+integer,+integer,?integer)` | |
| `call_nth/2` | `call_nth(:callable,+integer)` | |
| `callable/1` | `callable(+term)` | ISO |
| `can_be/2` | `can_be(+atom,+term,)` | |
| `can_be/4` | `can_be(+term,+atom,+term,?any)` | |
| `char_code/2` | `char_code(?atom,?integer)` | ISO |
| `compare/3` | `compare(+atom,+term,+term)` | ISO |
| `compound/1` | `compound(+term)` | ISO |
| `copy_term/2` | `copy_term(+term,?term)` | ISO |
| `copy_term_nat/2` | `copy_term_nat(+term,?term)` | |
| `copy_term_with_attributes/2` | `copy_term_with_attributes(+term,?term)` | |
| `crypto_n_random_bytes/2` | `crypto_n_random_bytes(+integer,-codes)` | |
| `current_module/1` | `current_module(-atom)` | |
| `current_predicate/1` | `current_predicate(+predicate_indicator)` | ISO |
| `current_rule/1` | `current_rule(-term)` | ISO |
| `cyclic_term/1` | `cyclic_term(+term)` | |
| `duplicate_term/2` | `duplicate_term(+term,?term)` | |
| `end_of_file/0` | `end_of_file` | ISO |
| `findall/3` | `findall(+term,:callable,-list)` | ISO |
| `functor/3` | `functor(?term,?atom,?integer)` | ISO |
| `ground/1` | `ground(+term)` | ISO |
| `halt/0` | `halt` | ISO |
| `halt/1` | `halt(+integer)` | ISO |
| `help/0` | `help` | |
| `help/1` | `help(+predicate_indicator)` | |
| `help/2` | `help(+predicate_indicator,+atom)` | |
| `hex_bytes/2` | `hex_bytes(?string,?list)` | |
| `hex_chars/2` | `hex_chars(?integer,?string)` | |
| `is_bigint/1` | `is_bigint(+term)` | |
| `is_list/1` | `is_list(+term)` | |
| `is_list_or_partial_list/1` | `is_list_or_partial_list(+term)` | |
| `is_partial_list/1` | `is_partial_list(+term)` | |
| `limit/2` | `limit(+integer,:callable)` | |
| `list/1` | `list(+term)` | |
| `load_text/2` | `load_text(+string,+list)` | |
| `meta_predicate/1` | `meta_predicate(+term)` | |
| `module_help/1` | `module_help(+atom)` | |
| `module_help/2` | `module_help(+atom,+predicate_indicator)` | |
| `module_help/3` | `module_help(+atom,+predicate_indicator,+atom)` | |
| `module_info/2` | `module_info(+atom,-list)` | |
| `multifile/1` | `multifile(+term)` | |
| `must_be/2` | `must_be(+atom,+term)` | |
| `must_be/4` | `must_be(+term,+atom,+term,?any)` | |
| `nb_setarg/3` | `nb_setarg(+integer,+term,+integer)` | |
| `nonvar/1` | `nonvar(+term)` | ISO |
| `number/1` | `number(+term)` | ISO |
| `number_chars/2` | `number_chars(?number,?list)` | ISO |
| `number_codes/2` | `number_codes(?number,?list)` | ISO |
| `numlist/3` | `numlist(+integer,+integer,-list)` | |
| `octal_chars/2` | `octal_chars(?integer,?string)` | |
| `offset/2` | `offset(+integer,+callable)` | |
| `op/3` | `op(?integer,?atom,+atom)` | ISO |
| `prolog_load_context/2` | `prolog_load_context(+atom,?term)` | |
| `repeat/0` | `repeat` | ISO |
| `replace/4` | `replace(+string,+integer,+integer,-string)` | |
| `set_prolog_flag/2` | `set_prolog_flag(+atom,+term)` | ISO |
| `source_info/2` | `source_info(+predicate_indicator,-list)` | |
| `split/4` | `split(+string,+string,?string,?string)` | |
| `split_string/4` | `split_string(+string,+atom,+atom,-list)` | |
| `statistics/0` | `statistics` | |
| `statistics/2` | `statistics(+atom,-term)` | |
| `string/1` | `string(+term)` | |
| `string_codes/2` | `string_codes(+string,-list)` | |
| `string_concat/3` | `string_concat(+string,+string,?string)` | |
| `string_length/2` | `string_length(+string,?integer)` | |
| `string_lower/2` | `string_lower(?string,?string)` | |
| `string_upper/2` | `string_upper(?string,?string)` | |
| `strip_module/3` | `strip_module(+callable,?atom,?callable)` | |
| `sub_atom/5` | `sub_atom(+atom,?before,?length,?after,?atom)` | ISO |
| `sub_string/5` | `sub_string(+character_list,?before,?length,?after,?character_list)` | ISO |
| `term_hash/2` | `term_hash(+term,?integer)` | |
| `term_singletons/2` | `term_singletons(+term,-list)` | |
| `term_variables/2` | `term_variables(+term,-list)` | ISO |
| `trace/0` | `trace` | |
| `unifiable/3` | `unifiable(+term,+term,-list)` | |
| `unify_with_occurs_check/2` | `unify_with_occurs_check(+term,+term)` | ISO |
| `urlenc/3` | `urlenc(?string,?string,+list)` | |
| `use_module/1` | `use_module(+term)` | |
| `use_module/2` | `use_module(+term,+list)` | |
| `using/0` | `using` | |
| `uuid/1` | `uuid(-string)` | |
| `var/1` | `var(+term)` | ISO |
### Control
24 predicates
| Predicate | Template | |
|---|---|---|
| `!/0` | `!` | ISO |
| `*->/2` | `*->(:callable,:callable)` | |
| `,/2` | `,(:callable,:callable)` | ISO |
| `->/2` | `->(:callable,:callable)` | ISO |
| `;/2` | `;(:callable,:callable)` | ISO |
| `abort/0` | `abort` | |
| `call/1` | `call(:callable)` | ISO |
| `call/2` | `call(:callable,?term)` | ISO |
| `call/3` | `call(:callable,?term,term)` | ISO |
| `call/4` | `call(:callable,?term,?term,?term)` | ISO |
| `call/5` | `call(:callable,?term,?term,?term,?term)` | ISO |
| `call/6` | `call(:callable,?term,?term,?term,?term,?term)` | ISO |
| `call/7` | `call(:callable,?term,?term,?term,?term,?term,?term)` | ISO |
| `call/8` | `call(:callable,?term,?term,?term,?term,?term,?term,?term)` | ISO |
| `catch/3` | `catch(:callable,?term,:callable)` | ISO |
| `fail/0` | `fail` | ISO |
| `false/0` | `false` | ISO |
| `if/3` | `if(:callable,:callable,:callable)` | |
| `ignore/1` | `ignore(:callable)` | |
| `once/1` | `once(:callable)` | ISO |
| `reset/3` | `reset(:callable,?term,-term)` | |
| `shift/1` | `shift(+term)` | |
| `throw/1` | `throw(+term)` | ISO |
| `true/0` | `true` | ISO |
### Arithmetic
80 predicates
| Predicate | Template | |
|---|---|---|
| `///2` | `//(+integer,+integer,-integer)` | ISO evaluable |
| `//2` | `/(+number,+number,-float)` | ISO evaluable |
| `*/2` | `*(+number,+number,-number)` | ISO evaluable |
| `**/2` | `**(+number,+number,-float)` | ISO evaluable |
| `+/1` | `+(+number,-number)` | ISO evaluable |
| `+/2` | `+(+number,+number,-number)` | ISO evaluable |
| `-/1` | `-(+number,-number)` | ISO evaluable |
| `-/2` | `-(+number,+number,-number)` | ISO evaluable |
| `2` | `<(+number,+number)` | ISO |
| `<2` | `<<(+integer,-integer)` | ISO evaluable |
| `=2` | `=<(+number,+number)` | ISO |
| `==/2` | `==(+term,+term)` | ISO |
| `>/2` | `>(+number,+number)` | ISO |
| `>=/2` | `>=(+number,+number)` | ISO |
| `>>/2` | `>>(+integer,-integer)` | ISO evaluable |
| `@2` | `@<(+term,+term)` | ISO |
| `@=2` | `@=<(+term,+term)` | ISO |
| `@>/2` | `@>(+term,+term)` | ISO |
| `@>=/2` | `@>=(+term,+term)` | ISO |
| `^/2` | `^(+number,+number,-integer)` | ISO evaluable |
| `abs/1` | `abs(+number,-number)` | ISO evaluable |
| `acos/1` | `acos(+number,-float)` | ISO evaluable |
| `acosh/1` | `acosh(+number,-float)` | evaluable |
| `asin/1` | `asin(+number,-float)` | ISO evaluable |
| `asinh/1` | `asinh(+number,-float)` | evaluable |
| `atan/1` | `atan(+number,-float)` | ISO evaluable |
| `atan2/2` | `atan2(+number,+number,-float)` | ISO evaluable |
| `atanh/1` | `atanh(+number,-float)` | evaluable |
| `ceiling/1` | `ceiling(+float,-integer)` | ISO evaluable |
| `copysign/2` | `copysign(+number,-number)` | evaluable |
| `cos/1` | `cos(+number,-float)` | ISO evaluable |
| `cosh/1` | `cosh(+number,-float)` | evaluable |
| `denominator/1` | `denominator(+rational,-integer)` | evaluable |
| `div/2` | `div(+integer,+integer,-integer)` | ISO evaluable |
| `divmod/4` | `divmod(+integer,+integer,?integer,?integer)` | |
| `e/0` | `e` | ISO evaluable |
| `epsilon/0` | `epsilon` | ISO evaluable |
| `erf/1` | `erf(+number,-float)` | evaluable |
| `erfc/1` | `erfc(+number,-float)` | evaluable |
| `exp/1` | `exp(+number,-float)` | ISO evaluable |
| `float/1` | `float(+number)` | ISO |
| `float_fractional_part/1` | `float_fractional_part(+float,-float)` | ISO evaluable |
| `float_integer_part/1` | `float_integer_part(+float,-integer)` | ISO evaluable |
| `floor/1` | `floor(+float,-integer)` | ISO evaluable |
| `gcd/2` | `gcd(+integer,+integer,-integer)` | evaluable |
| `get_seed/1` | `get_seed(-integer)` | |
| `integer/1` | `integer(+number)` | ISO |
| `is/2` | `is(?number,+number)` | ISO |
| `log/1` | `log(+number,-float)` | ISO evaluable |
| `log/2` | `log(+number,+number,-float)` | evaluable |
| `log10/1` | `log10(+number,-float)` | evaluable |
| `lsb/1` | `lsb(+integer,-integer)` | evaluable |
| `max/2` | `max(+number,+number,-number)` | ISO evaluable |
| `min/2` | `min(+number,+number,-number)` | ISO evaluable |
| `mod/2` | `mod(+integer,+integer,-integer)` | ISO evaluable |
| `msb/1` | `msb(+integer,-integer)` | evaluable |
| `numerator/1` | `numerator(+rational,-integer)` | evaluable |
| `pi/0` | `pi` | ISO evaluable |
| `popcount/1` | `popcount(+integer,-integer)` | evaluable |
| `rand/0` | `rand` | evaluable |
| `rand/1` | `rand(?integer)` | |
| `random/1` | `random(?integer)` | |
| `random_between/3` | `random_between(?integer,?integer,-integer)` | |
| `random_float/0` | `random_float` | evaluable |
| `random_integer/0` | `random_integer` | evaluable |
| `rational/1` | `rational(+term)` | |
| `rdiv/2` | `rdiv(+integer,+integer,-rational)` | evaluable |
| `rem/2` | `rem(+integer,+integer,-integer)` | ISO evaluable |
| `round/1` | `round(+float,-integer)` | ISO evaluable |
| `set_seed/1` | `set_seed(+integer)` | |
| `setrand/1` | `setrand(+integer)` | |
| `sign/1` | `sign(+number,-number)` | ISO evaluable |
| `sin/1` | `sin(+number,-float)` | ISO evaluable |
| `sinh/1` | `sinh(+number,-float)` | evaluable |
| `sqrt/1` | `sqrt(+number,-float)` | ISO evaluable |
| `srandom/1` | `srandom(+integer)` | |
| `tan/1` | `tan(+number,-float)` | ISO evaluable |
| `tanh/1` | `tanh(+number,-float)` | evaluable |
| `truncate/1` | `truncate(+float,-integer)` | ISO evaluable |
| `xor/2` | `xor(+integer,+integer,-integer)` | ISO evaluable |
### Streams & I/O
103 predicates
| Predicate | Template | |
|---|---|---|
| `absolute_file_name/3` | `absolute_file_name(+source_sink,-atom,+list)` | |
| `access_file/2` | `access_file(+source_sink,+atom)` | |
| `alias/2` | `alias(+blob,+atom)` | |
| `at_end_of_stream/0` | `at_end_of_stream` | ISO |
| `at_end_of_stream/1` | `at_end_of_stream(+stream)` | ISO |
| `chdir/1` | `chdir(+source_sink)` | |
| `close/1` | `close(+stream)` | ISO |
| `close/2` | `close(+stream,+opts)` | ISO |
| `copy_file/2` | `copy_file(+source_sink,+source_sink)` | |
| `current_error/1` | `current_error(--stream)` | ISO |
| `current_input/1` | `current_input(--stream)` | ISO |
| `current_output/1` | `current_output(--stream)` | ISO |
| `delete_file/1` | `delete_file(+source_sink)` | |
| `directory_files/2` | `directory_files(+source_sink,-list)` | |
| `exists_directory/1` | `exists_directory(+source_sink)` | |
| `exists_file/1` | `exists_file(+source_sink)` | |
| `flush_output/0` | `flush_output` | ISO |
| `flush_output/1` | `flush_output(+stream)` | ISO |
| `get_byte/1` | `get_byte(-integer)` | ISO |
| `get_byte/2` | `get_byte(+stream,-integer)` | ISO |
| `get_char/1` | `get_char(-integer)` | ISO |
| `get_char/2` | `get_char(+stream,-integer)` | ISO |
| `get_code/1` | `get_code(-integer)` | ISO |
| `get_code/2` | `get_code(+stream,-integer)` | ISO |
| `getfile/2` | `getfile(+source_sink,-list)` | |
| `getfile/3` | `getfile(+source_sink,-list,+list)` | |
| `getline/1` | `getline(-atom)` | |
| `getline/2` | `getline(+stream,-string)` | |
| `getline/3` | `getline(+stream,-string,+list)` | |
| `getlines/1` | `getlines(-list)` | |
| `getlines/2` | `getlines(+stream,-list)` | |
| `getlines/3` | `getlines(+stream,-list,+list)` | |
| `is_absolute_file_name/1` | `is_absolute_file_name(+source_sink)` | |
| `is_stream/1` | `is_stream(+term)` | |
| `load_files/2` | `load_files(+atom,+list)` | |
| `loadfile/2` | `loadfile(+source_sink,-atom)` | |
| `make/0` | `make` | |
| `make_directory/1` | `make_directory(+source_sink)` | |
| `make_directory_path/1` | `make_directory_path(+source_sink)` | |
| `nl/0` | `nl` | ISO |
| `nl/1` | `nl(+stream)` | ISO |
| `open/4` | `open(+source_sink,+mode,--stream,+list)` | ISO |
| `peek_byte/1` | `peek_byte(-integer)` | ISO |
| `peek_byte/2` | `peek_byte(+stream,-integer)` | ISO |
| `peek_char/1` | `peek_char(-integer)` | ISO |
| `peek_char/2` | `peek_char(+stream,-integer)` | ISO |
| `peek_code/1` | `peek_code(-integer)` | ISO |
| `peek_code/2` | `peek_code(+stream,-integer)` | ISO |
| `portray_clause/1` | `portray_clause(+term)` | |
| `portray_clause/2` | `portray_clause(+stream,+term)` | |
| `put_byte/1` | `put_byte(+integer)` | ISO |
| `put_byte/2` | `put_byte(+stream,+integer)` | ISO |
| `put_char/1` | `put_char(+integer)` | ISO |
| `put_char/2` | `put_char(+stream,+integer)` | ISO |
| `put_code/1` | `put_code(+integer)` | ISO |
| `put_code/2` | `put_code(+stream,+integer)` | ISO |
| `read/1` | `read(-term)` | ISO |
| `read/2` | `read(+stream,-term)` | ISO |
| `read_file_to_string/3` | `read_file_to_string(+source_sink,-string,+options)` | |
| `read_line_to_codes/2` | `read_line_to_codes(+stream,-list)` | |
| `read_line_to_string/2` | `read_line_to_string(+stream,-string)` | |
| `read_term/2` | `read_term(+stream,-term)` | ISO |
| `read_term/3` | `read_term(+stream,-term,+list)` | ISO |
| `read_term_from_atom/3` | `read_term_from_atom(+atom,?term,+list)` | |
| `read_term_from_chars/3` | `read_term_from_chars(+string,?term,+list)` | |
| `redo/1` | `redo(+integer)` | |
| `redo/2` | `redo(+stream,+integer)` | |
| `rename_file/2` | `rename_file(+source_sink,+source_sink)` | |
| `savefile/2` | `savefile(+source_sink,+source_sink)` | |
| `seeing/1` | `seeing(-atom)` | |
| `seen/0` | `seen` | |
| `set_error/1` | `set_error(+stream)` | ISO |
| `set_input/1` | `set_input(+stream)` | ISO |
| `set_output/1` | `set_output(+stream)` | ISO |
| `set_stream/2` | `set_stream(+stream,+term)` | ISO |
| `set_stream_position/2` | `set_stream_position(+stream,+integer)` | ISO |
| `size_file/2` | `size_file(+source_sink,-integer)` | |
| `stream_property/2` | `stream_property(+stream,-compound)` | ISO |
| `tab/1` | `tab(+integer)` | |
| `tab/2` | `tab(+stream,+integer)` | |
| `telling/1` | `telling(-atom)` | |
| `time_file/2` | `time_file(+source_sink,-float)` | |
| `told/0` | `told` | |
| `unget_byte/1` | `unget_byte(+integer)` | ISO |
| `unget_byte/2` | `unget_byte(+stream,+integer)` | ISO |
| `unget_char/1` | `unget_char(+integer)` | ISO |
| `unget_char/2` | `unget_char(+stream,+integer)` | ISO |
| `unget_code/1` | `unget_code(+integer)` | ISO |
| `unget_code/2` | `unget_code(+stream,+integer)` | ISO |
| `unload_files/1` | `unload_files(+atom)` | |
| `working_directory/2` | `working_directory(-atom,+source_sink)` | |
| `write/1` | `write(+term)` | ISO |
| `write/2` | `write(+stream,+term)` | ISO |
| `write_canonical/1` | `write_canonical(+term)` | ISO |
| `write_canonical/2` | `write_canonical(+stream,+term)` | ISO |
| `write_canonical_to_atom/3` | `write_canonical_to_atom(?atom,?term,+list)` | |
| `write_canonical_to_chars/3` | `write_canonical_to_chars(?string,?term,+list)` | |
| `write_term/2` | `write_term(+stream,+term)` | ISO |
| `write_term/3` | `write_term(+stream,+term,+list)` | ISO |
| `write_term_to_atom/3` | `write_term_to_atom(?atom,?term,+list)` | |
| `write_term_to_chars/3` | `write_term_to_chars(?term,+list,?string)` | |
| `writeq/1` | `writeq(+term)` | ISO |
| `writeq/2` | `writeq(+stream,+term)` | ISO |
### Formatting
3 predicates
| Predicate | Template | |
|---|---|---|
| `format/1` | `format(+string)` | |
| `format/2` | `format(+string,+list)` | |
| `format/3` | `format(+stream,+string,+list)` | |
### Database
14 predicates
| Predicate | Template | |
|---|---|---|
| `abolish/1` | `abolish(+predicate_indicator)` | ISO |
| `abolish/2` | `abolish(+term,+list)` | |
| `asserta/1` | `asserta(+term)` | ISO |
| `asserta/2` | `asserta(+term,-string)` | |
| `assertz/1` | `assertz(+term)` | ISO |
| `assertz/2` | `assertz(+term,-string)` | |
| `clause/2` | `clause(+term,?term)` | ISO |
| `clause/3` | `clause(?term,?term,-string)` | |
| `erase/1` | `erase(+string)` | |
| `instance/2` | `instance(+string,?term)` | |
| `listing/0` | `listing` | |
| `listing/1` | `listing(+predicate_indicator)` | |
| `retract/1` | `retract(+term)` | ISO |
| `retractall/1` | `retractall(+term)` | ISO |
### Maps
14 predicates
| Predicate | Template | |
|---|---|---|
| `engine_destroy/1` | `engine_destroy(+stream)` | |
| `engine_fetch/1` | `engine_fetch(-term)` | |
| `engine_next/2` | `engine_next(+stream,-term)` | |
| `engine_post/2` | `engine_post(+stream,+term)` | |
| `engine_self/1` | `engine_self(--stream)` | |
| `engine_yield/1` | `engine_yield(+term)` | |
| `is_engine/1` | `is_engine(+term)` | |
| `map_close/1` | `map_close(+stream)` | |
| `map_count/2` | `map_count(+stream,-integer)` | |
| `map_create/2` | `map_create(--stream,+list)` | |
| `map_del/2` | `map_del(+stream,+atomic)` | |
| `map_get/3` | `map_get(+stream,+atomic,-atomic)` | |
| `map_list/2` | `map_list(+stream,-list)` | |
| `map_set/3` | `map_set(+stream,+atomic,+atomic)` | |
### Attributed variables
3 predicates
| Predicate | Template | |
|---|---|---|
| `attribute/3` | `attribute(?atom,+atom,+integer)` | |
| `get_atts/2` | `get_atts(@variable,-term)` | |
| `put_atts/2` | `put_atts(@variable,+term)` | |
### Threads
29 predicates
| Predicate | Template | |
|---|---|---|
| `is_thread/1` | `is_thread(+term)` | |
| `message_queue_create/2` | `message_queue_create(-queue,+list)` | |
| `message_queue_destroy/1` | `message_queue_destroy(+queue)` | |
| `message_queue_property/2` | `message_queue_property(?queue,?term)` | |
| `mutex_create/2` | `mutex_create(-mutex,+list)` | |
| `mutex_destroy/1` | `mutex_destroy(+mutex)` | |
| `mutex_lock/1` | `mutex_lock(+mutex)` | |
| `mutex_property/2` | `mutex_property(?mutex,?term)` | |
| `mutex_trylock/1` | `mutex_trylock(+mutex)` | |
| `mutex_unlock/1` | `mutex_unlock(+mutex)` | |
| `mutex_unlock_all/0` | `mutex_unlock_all` | |
| `pl_msg_recv/2` | `pl_msg_recv(-thread,?term)` | |
| `pl_msg_send/2` | `pl_msg_send(+thread,+term)` | |
| `pl_thread_pin_cpu/2` | `pl_thread_pin_cpu(+thread,+integer)` | |
| `pl_thread_set_priority/2` | `pl_thread_set_priority(+thread,+integer)` | |
| `thread/3` | `thread(--thread,+atom,+list)` | |
| `thread_cancel/1` | `thread_cancel(+thread)` | |
| `thread_create/3` | `thread_create(:callable,--thread,+list)` | |
| `thread_detach/1` | `thread_detach(+thread)` | |
| `thread_exit/1` | `thread_exit(+term)` | |
| `thread_get_message/2` | `thread_get_message(+queue,?term)` | |
| `thread_get_message/3` | `thread_get_message(+queue,?term,+list)` | |
| `thread_peek_message/2` | `thread_peek_message(+queue,?term)` | |
| `thread_property/2` | `thread_property(?thread,?term)` | |
| `thread_self/1` | `thread_self(-integer)` | |
| `thread_send_message/2` | `thread_send_message(+queue,+term)` | |
| `thread_signal/2` | `thread_signal(+thread,:callable)` | |
| `thread_sleep/1` | `thread_sleep(+integer)` | |
| `thread_yield/0` | `thread_yield` | |
### Coroutining
15 predicates
| Predicate | Template | |
|---|---|---|
| `await/0` | `await` | |
| `call_task/1` | `call_task(:callable)` | |
| `call_task/2` | `call_task(:callable,?term)` | |
| `call_task/3` | `call_task(:callable,?term,?term)` | |
| `call_task/4` | `call_task(:callable,?term,?term,?term)` | |
| `call_task/5` | `call_task(:callable,?term,?term,?term,?term)` | |
| `call_task/6` | `call_task(:callable,?term,?term,?term,?term,?term)` | |
| `call_task/7` | `call_task(:callable,?term,?term,?term,?term,?term,?term)` | |
| `call_task/8` | `call_task(:callable,?term,?term,?term,?term,?term,?term,?term)` | |
| `end_wait/0` | `end_wait` | |
| `fork/0` | `fork` | |
| `recv/1` | `recv(?term)` | |
| `send/1` | `send(+term)` | |
| `wait/0` | `wait` | |
| `yield/0` | `yield` | |
### Operating system
22 predicates
| Predicate | Template | |
|---|---|---|
| `busy/1` | `busy(+integer)` | |
| `cpu_time/1` | `cpu_time(-integer)` | |
| `date_time/6` | `date_time(-integer,-integer,-integer,-integer,-integer,-integer)` | |
| `date_time/7` | `date_time(-integer,-integer,-integer,-integer,-integer,-integer,-integer)` | |
| `get_time/1` | `get_time(-float)` | |
| `get_unbuffered_char/1` | `get_unbuffered_char(?character)` | |
| `get_unbuffered_code/1` | `get_unbuffered_code(?integer)` | |
| `getenv/2` | `getenv(+atom,-atom)` | |
| `now/0` | `now` | |
| `now/1` | `now(-integer)` | |
| `pclose/1` | `pclose(+stream)` | |
| `popen/4` | `popen(+source_sink,+atom,--stream,+list)` | |
| `process_create/3` | `process_create(+atom,+list,+list)` | |
| `process_kill/1` | `process_kill(+integer)` | |
| `process_kill/2` | `process_kill(+integer,+integer)` | |
| `setenv/2` | `setenv(+atom,+atom)` | |
| `shell/1` | `shell(+atom)` | |
| `shell/2` | `shell(+atom,-integer)` | |
| `sleep/1` | `sleep(+number)` | |
| `time/1` | `time(:callable)` | |
| `unsetenv/1` | `unsetenv(+atom)` | |
| `wall_time/1` | `wall_time(-integer)` | |
### POSIX time
11 predicates
| Predicate | Template | |
|---|---|---|
| `pid/1` | `pid(-integer)` | |
| `posix_ctime/2` | `posix_ctime(+integer,-atom)` | |
| `posix_fork/1` | `posix_fork(-integer)` | |
| `posix_getpid/1` | `posix_getpid(-integer)` | |
| `posix_getppid/1` | `posix_getppid(-integer)` | |
| `posix_gmtime/2` | `posix_gmtime(+integer,-compound)` | |
| `posix_localtime/2` | `posix_localtime(+integer,-compound)` | |
| `posix_mktime/2` | `posix_mktime(+compound,-integer)` | |
| `posix_strftime/3` | `posix_strftime(+atom,-atom,+compound)` | |
| `posix_strptime/3` | `posix_strptime(+atom,+atom,-compound)` | |
| `posix_time/1` | `posix_time(-integer)` | |
### Regular expressions
5 predicates
| Predicate | Template | |
|---|---|---|
| `sre_compile/2` | `sre_compile(+string,-string,)` | |
| `sre_match/4` | `sre_match(+string,+string,-string,-string,)` | |
| `sre_matchp/4` | `sre_matchp(+string,+string,-string,-string,)` | |
| `sre_subst/4` | `sre_subst(+string,+string,-string,-string,)` | |
| `sre_substp/4` | `sre_substp(+string,+string,-string,-string,)` | |
### CSV
4 predicates
| Predicate | Template | |
|---|---|---|
| `parse_csv_file/2` | `parse_csv_file(+atom,+list)` | |
| `parse_csv_line/2` | `parse_csv_line(+atom,-list)` | |
| `parse_csv_line/3` | `parse_csv_line(+atom,-compound,+options)` | |
| `write_csv_file/3` | `write_csv_file(+atom,+list,+options)` | |
### Foreign function interface
2 predicates
| Predicate | Template | |
|---|---|---|
| `foreign_struct/2` | `foreign_struct(+atom,+list)` | |
| `use_foreign_module/2` | `use_foreign_module(+atom,+list)` | |
### library(builtins)
56 predicates
| Predicate | Template | |
|---|---|---|
| `absolute_filename/2` | `absolute_filename(+atom,?atom)` | |
| `append/1` | `append(+filename)` | |
| `argv/1` | `argv(-list)` | |
| `atom_number/2` | `atom_number(?atom,?number)` | |
| `bagof/3` | `bagof(+term,:callable,?list)` | ISO |
| `call_residue_vars/2` | `call_residue_vars(@goal,-list)` | |
| `chars_base64/3` | `chars_base64(+atom,?atom,+list)` | |
| `chars_urlenc/3` | `chars_urlenc(+atom,?atom,+list)` | |
| `current_op/3` | `current_op(?integer,?atom,?atom)` | ISO |
| `current_prolog_flag/2` | `current_prolog_flag(+callable,+term)` | ISO |
| `deconsult/1` | `deconsult(+list)` | |
| `engine_create/3` | `engine_create(+term,+callable,?stream)` | |
| `engine_create/4` | `engine_create(+term,+callable,?stream,+list)` | |
| `evaluable_property/2` | `evaluable_property(+callable,+term)` | ISO |
| `findnsols/4` | `findnsols(+integer,+term,+callable,?list)` | |
| `flatten/2` | `flatten(?list,?list)` | |
| `get0/1` | `get0(?integer)` | |
| `get0/1` | `get0(+term)` | |
| `get0/2` | `get0(+stream,?integer)` | |
| `get0/2` | `get0(+stream,+term)` | |
| `keysort/2` | `keysort(+term,?term)` | ISO |
| `length/2` | `length(?term,?integer)` | |
| `load_files/1` | `load_files(+list)` | |
| `msort/2` | `msort(+term,?term)` | ISO |
| `numbervars/3` | `numbervars(+term,+integer,?integer)` | |
| `open/3` | `open(+atom,+atom,--stream)` | ISO |
| `predicate_property/2` | `predicate_property(+callable,+term)` | ISO |
| `pretty/1` | `pretty(+predicateindicator)` | |
| `print/1` | `print(+term)` | |
| `print/2` | `print(+stream,+term)` | |
| `process_wait/2` | `process_wait(+integer,-term)` | |
| `process_wait/3` | `process_wait(+integer,-term,?list)` | |
| `put/1` | `put(+integer)` | |
| `put/2` | `put(+stream,+integer)` | |
| `raw_argv/1` | `raw_argv(-list)` | |
| `read_from_atom/2` | `read_from_atom(+atom,?term)` | |
| `read_from_chars/2` | `read_from_chars(+chars,?term)` | |
| `reconsult/1` | `reconsult(+list)` | |
| `see/1` | `see(+filename)` | |
| `setof/3` | `setof(+term,+callable,?list)` | ISO |
| `sort/2` | `sort(+term,?term)` | ISO |
| `sort/4` | `sort(+term,+atom,+list,?term)` | |
| `sre_match_all/3` | `sre_match_all(+pattern,+text,-list)` | |
| `sre_match_all_in_file/3` | `sre_match_all_in_file(+pattern,+filename,-list)` | |
| `sre_match_all_pos/3` | `sre_match_all_pos(+pattern,+subst,-list)` | |
| `sre_match_all_pos_in_file/3` | `sre_match_all_pos_in_file(+pattern,+filename,-list)` | |
| `sre_subst_all/4` | `sre_subst_all(+pattern,+text,+subst,-text)` | |
| `sre_subst_all_in_file/4` | `sre_subst_all_in_file(+pattern,+filename,+subst,-list)` | |
| `tell/1` | `tell(+filename)` | |
| `term_hash/3` | `term_hash(+term,+list,-integer)` | |
| `term_to_atom/2` | `term_to_atom(+term,?atom)` | |
| `term_variables/3` | `term_variables(+term,-list,?tail)` | |
| `thread_join/2` | `thread_join(+thread,-term)` | |
| `writeln/1` | `writeln(+term)` | |
| `writeln/2` | `writeln(+stream,+term)` | |
### library(iso_ext)
13 predicates
| Predicate | Template | |
|---|---|---|
| `call_cleanup/2` | `call_cleanup(:callable,:callable)` | |
| `call_det/2` | `call_det(:callable,?boolean)` | |
| `call_with_time_limit/2` | `call_with_time_limit(+number,:callable)` | |
| `cfor/3` | `cfor(+evaluable,+evaluable,-var)` | |
| `countall/2` | `countall(:callable,?integer)` | ISO |
| `findall/4` | `findall(+term,:callable,-list,+list)` | |
| `forall/2` | `forall(:callable,:callable)` | |
| `setup_call_cleanup/3` | `setup_call_cleanup(:callable,:callable,:callable)` | |
| `subsumes_term/2` | `subsumes_term(+term,+term)` | ISO |
| `succ/2` | `succ(?integer,+integer)` | |
| `succ/2` | `succ(+integer,-integer)` | |
| `time_out/3` | `time_out(:callable,+integer,?atom)` | |
| `variant/2` | `variant(+term,+term)` | |
### library(lists)
44 predicates
| Predicate | Template | |
|---|---|---|
| `append/2` | `append(?list,?list)` | |
| `append/3` | `append(?term,?term,?term)` | |
| `exclude/2` | `exclude(:callable,?list)` | |
| `foldl/4` | `foldl(:callable,+list,+var,-var)` | |
| `foldl/5` | `foldl(:callable,+list,+list,+var,-var)` | |
| `foldl/6` | `foldl(:callable,+list,+list,+list,+var,-var)` | |
| `include/2` | `include(:callable,?list)` | |
| `intersection/3` | `intersection(+list,+list,-list)` | |
| `is_set/1` | `is_set(+list)` | |
| `last/2` | `last(+list,-term)` | |
| `list_max/2` | `list_max(+list,?integer)` | |
| `list_min/2` | `list_min(+list,?integer)` | |
| `list_sum/2` | `list_sum(+list,?integer)` | |
| `maplist/2` | `maplist(:callable,+list)` | |
| `maplist/3` | `maplist(:callable,+list,+list)` | |
| `maplist/4` | `maplist(:callable,+list,+list,+list)` | |
| `maplist/5` | `maplist(:callable,+list,+list,+list,+list)` | |
| `maplist/6` | `maplist(:callable,+list,+list,+list,+list,+list)` | |
| `maplist/7` | `maplist(:callable,+list,+list,+list,+list,+list,+list)` | |
| `maplist/8` | `maplist(:callable,+list,+list,+list,+list,+list,+list,+list)` | |
| `max_list/2` | `max_list(+list,?integer)` | |
| `member/2` | `member(?term,?term)` | |
| `memberchk/2` | `memberchk(?term,?term)` | |
| `min_list/2` | `min_list(+list,?integer)` | |
| `nth0/3` | `nth0(?integer,?term,?term)` | |
| `nth0/4` | `nth0(?integer,?term,?term,?term)` | |
| `nth1/3` | `nth1(?integer,?term,?term)` | |
| `nth1/4` | `nth1(?integer,+term,?term,?term)` | |
| `permutation/2` | `permutation(?list,?list)` | |
| `reverse/2` | `reverse(?list,?list)` | |
| `same_length/2` | `same_length(?list,?list)` | |
| `select/3` | `select(+term,+term,?term)` | |
| `selectchk/3` | `selectchk(+term,?term,?term)` | |
| `subtract/3` | `subtract(+list,+list,-list)` | |
| `sum_list/2` | `sum_list(+list,?integer)` | |
| `tasklist/2` | `tasklist(:callable,+list)` | |
| `tasklist/3` | `tasklist(:callable,+list,+list)` | |
| `tasklist/4` | `tasklist(:callable,+list,+list,+list)` | |
| `tasklist/5` | `tasklist(:callable,+list,+list,+list,+list)` | |
| `tasklist/6` | `tasklist(:callable,+list,+list,+list,+list,+list)` | |
| `tasklist/7` | `tasklist(:callable,+list,+list,+list,+list,+list,+list)` | |
| `tasklist/8` | `tasklist(:callable,+list,+list,+list,+list,+list,+list,+list)` | |
| `transpose/2` | `transpose(?list,?list)` | |
| `union/3` | `union(+list,+list,-list)` | |
### Other
9 predicates
| Predicate | Template | |
|---|---|---|
| `/\/2` | `/\(+integer,+integer,-integer)` | ISO evaluable |
| `=` | `=/2: =:=(+number,+number)` | ISO |
| `=\=/2` | `=\=(+number,+number)` | ISO |
| `?=/2` | `?=(+term,+term)` | |
| `\//2` | `\/(+integer,+integer,-integer)` | ISO evaluable |
| `\/1` | `\(+integer,-integer)` | ISO evaluable |
| `\+/1` | `\+(:callable)` | ISO |
| `\=/2` | `\=(+term,+term)` | ISO |
| `\==/2` | `\==(+term,+term)` | ISO |