4. Python Functions available in the Right Hand Side of Rules
PyCLIPS gives the ability to users to call Python code from within the CLIPS subsystem. Virtually every function defined in Python can be called from CLIPS code using the special CLIPS function
python-call. However, since CLIPS has different basic types than Python, in most cases it would be useful for modules that implement function to be called in the CLIPS engine to import the PyCLIPS module themselves, in order to be aware of the structures that CLIPS uses.
Functions have to be registered in PyCLIPS in order to be available to the underlying engine, and the registration process can dynamically occur at any moment.
A simple example follows:
>>> import clips >>> def py_square(x): return x * x >>> clips.RegisterPythonFunction(py_square) >>> print clips.Eval("(python-call py_square 7)") 49 >>> print clips.Eval("(python-call py_square 0.7)") 0.49