DefFunctions are defined functions, e.g., functions that are defined by an expert system and not the inference engine, or interpreted functions. They act like interpreted macros for simplifying the writing of expert systems. The functions must be defined before they are actually used or a syntax error will result. Every deffunction must have a unique name, not just unique among deffunctions but among all functions defined in the inference engine.
Deffunctions are made up of statements which may be a function call or a value. Every statement is executed in order until a return statement is encountered. For example, in the following deffunction, "How are you" is never printed:
(deffunction say-anything ()
(printout t "hello")
(printout t "How are you"))
See the DefFunctions definition for the syntax of a deffunction.