is a list of variables (each starting with
) which are already bound.
is a rule body consisting of the same kind of statements that make up the right hand side of a forward or backward chaining rule.
This macro enables rule syntax to be embedded within Lisp. The
is executed just as if it were the right hand side of a rule. All variables in the body (denoted by
) are taken to be unbound unless found in the list
in which case its value is taken from the Lisp variable of the same name. It is similar to the function
but can be compiled for efficiency.