ECLiPSe
can interface
to any external function written in C and load it dynamically
if required,
the C function can manipulate Prolog data, or it might
be completely independent of Prolog structures.
All C data can be mapped on Prolog data, in particular C structures
correspond to ECLiPSe
arrays.
As in other Prolog systems,
external procedures may succeed or fail,
but ECLiPSe
also offers the ability to backtrack, delay and
call Prolog procedures from an external one.
These features make the external predicates a powerful
tool for the integration of non-Prolog data and control into ECLiPSe
.