[ Dynamic Predicates | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]

# dynamic ++SpecList

Declares the procedures specified by SpecList as dynamic.

SpecList
  Sequence of expressions of the form Atom/Integer.

## Description

Declare the procedures specified by SpecList as dynamic procedures. This has to be done before the procedure is defined.

To change a static procedure to a dynamic one it must first be abolished.

If the procedure was already dynamic Error 64 is raised. The default error handler erases all existing clauses and succeeds. This is useful for recompiling files with dynamic declarations, but it can be redefined if desired.

### Modes and Determinism

- dynamic(++) is det

### Modules

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

### Exceptions

(4) instantiation fault
  SpecList is not instantiated.
(5) type error
  SpecList is instantiated, but not to a sequence of expressions of the form Atom/Integer.
(64) procedure already dynamic
  SpecList is already dynamic.
(65) procedure already defined
  SpecList is already defined.

## Examples

    Success:
         [eclipse]: pred(a/1).
         no.
         [eclipse]: dynamic a/1.
         yes.
         [eclipse]: pred(a/1).
         in eclipse: dynamic prolog local debugged stopped traceable
         yes.
         [eclipse]: a(X).
         no (more) solution.
    Error:
         dynamic X.                 (Error 4).
         dynamic a.                 (Error 5).
         dynamic a/1, a/1.          (Error 64). % succeeds
         get_flag(p/0,type,user),
         dynamic p/0.               (Error 65).

## See Also

is_dynamic / 1