[ Predicate Database and Compiler | The ECLiPSe Built-In Predicates | 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

- discontiguous(++) is det

### 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