next up previous index
Next: Porting Applications to Up: Getting started with Previous: Using Libraries

Redefining Built In Predicates

  Any ECLiPSe built-in predicate can be redefined (i.e. hidden by a local predicate of the same name, cf. gif) by the user. To remind the user of what is happening, a warning is given if the redefinition is done by just defining a new predicate of the same name. To avoid the warning and to clarify the meaning, an explicit local/1 declaration should be provided for the builtin that is to be redefined.

Some builtins are classified as protected (see Appendix gif). Anyway, this does not mean that they can not be redefined. They just require the explicit local/1 declaration to appear in the source before any occurrence as a subgoal. The same is true for redefining existing predicates with predicates that   use a different calling convention (this is signaled by the "inconsistent redefinition" error). Different calling convention are used for normal Prolog predicates, for C externals and for Prolog tool predicates.



Micha Meier
Mon Mar 4 12:11:45 MET 1996