Extended Types

Following is a list of argument types that are defined in terms of the simple argument types. This is a formal description of the types/domains used in the Arguments sections of the reference pages for the built-ins. The rules are given in BNF (Backus-Naur form).

bbkey::= atom | integer {where the integer is small}
stream_object::= term {as defined in ref-iou-sfh-sob}
term::= {any Prolog term}
list of Type::= [] | [Type|list of Type]
var or Type::= var | Type
one of [Element|Rest]::= Element | one of Rest
arity::= {an integer X in the range 0..255}
byte::= {an integer X in the range 0..255}
char::= {an atom consisting of a single character}
chars::= list of char
code::= {an integer X >= 0}
codes::= list of code
order::= {an atom, one of [<,=,>]}
pair::= term-term
simple_pred_spec::= atom/arity
pred_spec::= simple_pred_spec | atom:pred_spec
pred_spec_forest::= [] | pred_spec
| [pred_spec_forest|pred_spec_forest]
| pred_spec_forest,pred_spec_forest
pred_spec_tree::= pred_spec | list of pred_spec
foreign_spec::= callable {all arguments being foreign_arg}
foreign_arg::= +interf_arg_type | -interf_arg_type | [-interf_arg_type]
interf_arg_type::= integer | float | atom
| term | codes | string | address | address(atom)
{see the description in Conversions between Prolog Arguments and C Types}
file_spec::= atom | atom(file_spec)
expr::= {everything that is accepted as second argument to is/2;
see the description of arithmetic expressions in ref-ari-aex.}

Send feedback on this subject.