[ Predicate Database and Compiler | Reference Manual | Alphabetic Index ]

discontiguous(++SpecList)

Declares the procedure(s) specified by SpecList as discontiguous
SpecList
term of the form Atom/Integer, or a comma-separated sequence of such terms, or a list of such terms

Description

The discontiguous declaration specifies that clauses for the declared predicate need not be together (contiguous) in the source file which contains them, but can be interleaved with clauses for other predicates. All clauses must be in a single file, though.

A discontiguous declaration must textually occur in the same file and before any clauses for the predicate. Multiple discontiguous declarations for the same predicate are silently accepted.

Modes and Determinism

Modules

This predicate is sensitive to its module context (tool predicate, see @/2).

Exceptions

(4) instantiation fault
SpecList or a component of it is not instantiated.
(5) type error
SpecList is instantiated, but not to a sequence or list of expressions of the form Atom/Integer.
(65) procedure already defined
SpecList specifies a predicate which is already defined

Examples

  [eclipse 1]: [user].
   :- discontiguous(p/1).
   p(a).
   q(1).
   p(b).
  user       compiled traceable 220 bytes in 0.02 seconds
  yes.

See Also

compile / 1