Prolog Predicates
Aus ProgrammingWiki
folgende Predicates werden vom Prolog Interpreter von Haus aus unterstützt:
Built-in predicates
Control Constructs
!/0 – Cut. ,/2 – Conjunction. ->/2 – If-Then. ->;/3 – If-Then-Else. ;/2 – Disjunction. call/1 – Invoke a callable term as a goal. call/2 – Invoke a callable term as a goal with an extra argument. call/3 – Invoke a callable term as a goal with two extra arguments. call/4 – Invoke a callable term as a goal with three extra arguments. call/5 – Invoke a callable term as a goal with four extra arguments. call/6 – Invoke a callable term as a goal with five extra arguments. call/7 – Invoke a callable term as a goal with six extra arguments. call/8 – Invoke a callable term as a goal with seven extra arguments. catch/3 – Enable recovery from exceptions. fail/0 – Always fail. false/0 – Always fail. throw/1 – Raise an exception. true/0 – Always succeed.
Term Unification
=/2 – Unification. subsumes_term/2 – Checks if general term can be made equivalent to specific one. unify_with_occurs_check/2 – Check if two terms are unifiable. \=/2 – Not unification.
Clause Creation and Destruction
abolish/1 – Remove all the clauses of a predicate. asserta/1 – Add term to the Prolog database. assertz/1 – Add term to the Prolog database. retract/1 – Delete term from Prolog database. retractall/1 – Removes rules and clauses which unify with a term.
Clause Retrieval and Information
clause/2 – Check the existence of rules. current_predicate/1 – Check the existence of predicates.
Term Creation and Decomposition
=../2 – Check the descomposition of a term. arg/3 – Check the argument of a term in the nth position. copy_term/2 – Copy one term without bounding the variables on it. functor/3 – Check characteristics of a term. term_variables/2 – Get variables of term.
Term Comparison
==/2 – Term identical. @</2 – Term less than. @=</2 – Term less than or equal to. @>/2 – Term greater than. @>=/2 – Term greater than or equal to. compare/3 – Compare two terms according to order. \==/2 – Term not identical.
Type Testing
acyclic_term/1 – Check if term has no cycles. atom/1 – Check if atom. atomic/1 – Check if atom, integer or float. callable/1 – Check if term is callable. compound/1 – Check if compound. float/1 – Check if float. ground/1 – Check if term has no free variables. integer/1 – Check if integer. is_list/1 – Check if list. nonvar/1 – Check if not variable. number/1 – Check if integer or float. var/1 – Check if variable.
Logic and Control
once/1 – Evaluate a term just once. repeat/0 – Provide infinite choice points. \+/1 – Not provable.
Atom Processing
atomic_list_concat/2 – Concatenate elements of list. atomic_list_concat/3 – Concatenate elements of list with atom. atom_chars/2 – Express an atom as a list of one character atoms. atom_codes/2 – Express an atom as a list of character codes. atom_concat/3 – Concatenate characters. atom_length/2 – Length of an atom. char_code/2 – Character code of an atom. downcase_atom/2 – Turn atom into lowercase. number_chars/2 – Express a number as a list of one character atoms. number_codes/2 – Express a number as a list of number codes. sub_atom/5 – Look for subatoms inside an atom. upcase_atom/2 – Turn atom into uppercase.
All Solutions
bagof/3 – Find all the values that would make a goal succeed and structure them. findall/3 – Find all the values that would make a goal succeed. forall/2 – Check an action for all alternative bindings. setof/3 – Find all the values that would make a goal succeed and organize and order them.
Arithmetic Evaluation
between/3 – Check if value is within a range of integers. is/2 – Evaluate expression. succ/2 – Return the successor of a positive number.
Arithmetic Comparison
</2 – Arithmetic less than. =:=/2 – Arithmetic equal. =</2 – Arithmetic less than or equal to. =\=/2 – Arithmetic not equal. >/2 – Arithmetic greater than. >=/2 – Arithmetic greater than or equal to.
Implementation defined hooks
current_prolog_flag/2 – Check prolog flag and flag values. halt/0 – Terminate a Prolog processor. halt/1 – Terminate a Prolog processor and return message. set_prolog_flag/2 – Set value of flag.
Input and Output
current_op/3 – Check properties of operator. op/3 – Alter the operator table.
Stream Selection and Control
at_end_of_stream/0 – Check if last character from current input stream has been read. at_end_of_stream/1 – Check if last character from a specific input stream has been read. close/1 – Close a stream. close/2 – Close a stream according to several options. current_input/1 – Get the current input stream. current_output/1 – Get the current output stream. flush_output/0 – Flush output on current stream. flush_output/1 – Flush output on specified stream. open/3 – Open a source in a certain mode through a stream. open/4 – Open a source in a certain mode through a stream according to some options. set_input/1 – Set the current input stream. set_output/1 – Set the current output stream. set_stream_position/2 – Set the stream position. stream_property/2 – Retrieve stream properties.
Character Input/Output
get_char/1 – Get character from current input stream. get_char/2 – Get character from input stream. get_code/1 – Get character code from current input stream. get_code/2 – Get character code from input stream. nl/0 – Write new line character to current output stream. nl/1 – Write new line character to output stream. peek_char/1 – Read character from current input stream without removing it. peek_char/2 – Read character from input stream without removing it. peek_code/1 – Read character code from current input stream without removing it. peek_code/2 – Read character code from input stream without removing it. put_char/1 – Write character in current output stream. put_char/2 – Write character in output stream. put_code/1 – Write character code in current output stream. put_code/2 – Write character code in output stream.
Byte Input/Output
get_byte/1 – Read byte from current input stream. get_byte/2 – Read byte fom input stream. peek_byte/1 – Read byte from current input stream without removing it. peek_byte/2 – Read byte from input stream without removing it. put_byte/1 – Write byte in current output stream. put_byte/2 – Write byte in output stream.
Term Input/Output
read/1 – Read Prolog term from current input stream. read/2 – Read Prolog term from input stream. read_term/2 – Read Prolog term from current input stream according to some options. read_term/3 – Read Prolog term from input stream according to some options. write/1 – Write Prolog term to current output stream. write/2 – Write Prolog term to output stream. writeq/1 – Write Prolog term to current output stream, quoting atoms if necessary. writeq/2 – Write Prolog term to output stream, quoting atoms if necessary. write_canonical/1 – Write Prolog term to current output stream in canonical form. write_canonical/2 – Write Prolog term to output stream in canonical form. write_term/2 – Write Prolog term into current output stream according to some options. write_term/3 – Write Prolog term into output stream according to some options.
List Manipulation
append/2 – Concatenate a list of lists. append/3 – Join two lists. drop/3 – Drop the first elements of a list. keysort/2 – Check keys order. last/2 – Last element of a list. length/2 – Length of a list. list_to_set/2 – Turn list into set. max_list/2 – Largest element of a list. member/2 – Check membership of element in list. min_list/2 – Smallest element of a list. msort/2 – Check standard order. nth0/3 – Get the Nth element of a list. nth0/4 – Get the Nth element of a list and the rest of elements on it. nth1/3 – Get the Nth element of a list. nth1/4 – Get the Nth element of a list and the rest of elements on it. permutation/2 – Permutation of list. prefix/2 – Get prefixes of list. prod_list/2 – Product of the elements of a list. replicate/3 – Generate list by replicating an element. reverse/2 – Invert the order of the elements in a list. select/3 – Check if two lists differ in one element. sort/2 – Checks standard order. take/3 – Retrieve first elements of a list.
List Higher Order
exclude/3 – Filter elements for which a goal fails. foldl/4 – Reduce list to a single value. include/3 – Filter elements for which a goal succeeds. maplist/2 – Check if goal can be applied to a list. maplist/3 – Check if goal can be applied to several lists. maplist/4 – Check if goal can be applied to several lists. maplist/5 – Check if goal can be applied to several lists. maplist/6 – Check if goal can be applied to several lists. maplist/7 – Check if goal can be applied to several lists. maplist/8 – Check if goal can be applied to several lists.
Random Numbers
maybe/0 – Succeed or fail randomly. maybe/1 – Succeed or fail with a certain probability. random/1 – Generate random value. random/3 – Generate random value in a range. random_between/3 – Get random integer from range. random_member/2 – Get random element of list. random_permutation/2 – Rearrange list randomly.
Statistics
statistics/0 – Display system statistics. statistics/2 – Display data of a single statistic. time/1 – Execute goal and print metrics.