External definitions are used to enable additional `magic' functions
supported by a specific tool.
Requiring a definition, rather than silently inserting names into the
initial environment, has two advantages: any dependencies on such
functions are made explicit and there is no possibility that users will
introduce conflicting definitions without being aware of it.
For example, to make use of an (imaginary) frobnicate
external
function, we might say
external frobnicate P(s) = c!frobnicate(s^<0>, 7) -> STOP
Without the external definition, frobnicate
would be reported as
an undeclared identifier.
Tools should report as an error any attempt to define an external name
which they do not recognise.
Go to the Next or Previous section, the Detailed Contents, or the FS(E)L Home Page.