4.15 Declaring predicate properties
AllApplicationManualNameSummaryHelp

  • Documentation
    • Reference manual
      • Built-in Predicates
        • Declaring predicate properties
          • dynamic/1
          • dynamic/2
          • compile_predicates/1
          • multifile/1
          • discontiguous/1
          • public/1
          • non_terminal/1
    • Packages
Availability:built-in
compile_predicates(:ListOfPredicateIndicators)
Compile a list of specified dynamic predicates (see dynamic/1 and assert/1) into normal static predicates. This call tells the Prolog environment the definition will not change anymore and further calls to assert/1 or retract/1 on the named predicates raise a permission error. This predicate is designed to deal with parts of the program that are generated at runtime but do not change during the remainder of the program execution.92The specification of this predicate is from Richard O'Keefe. The implementation is allowed to optimise the predicate. This is not yet implemented. In multithreaded Prolog, however, static code runs faster as it does not require synchronisation. This is particularly true on SMP hardware.