11.1.4.2 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).

stream_object ::= term {as defined in ref-iou-sfh-sob}

term ::= {any Prolog term}

list of Type ::= [] | [Type|list of 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

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.