1.2 Mode Spec

When describing a predicate, we present its usage with a mode spec, which has the form name(arg, …, arg), where each arg denotes how that argument is used by the predicate, and has one of the following forms:

:ArgName

The argument is used as a term denoting a goal or a clause or a predicate name, or that otherwise needs special handling of module prefixes. It is is subject to module name expansion (see ref-mod-mne).

+ArgName

The argument is an input argument. Usually, but not always, this implies that the argument should be instantiated.

-ArgName

The argument is an output argument. Usually, but not always, this implies that the argument should be uninstantiated.

?ArgName

The argument may be used for both input and output.

Please note: The reference pages for built-in predicate use slightly different mode specs.


Send feedback on this subject.