2. Funciones de procedimientos En ocasiones resulta útil (y más eficiente) realizar algunas operaciones mediante un paradigma de programación basado en procedimientos en lugar de uno basado en reglas. CLIPS proporciona algunas funciones para controlar el flujo de ejecución de acciones en el lado derecho de una regla, dos de éstas son las funciones «while» e «if»; además la función «halt» que permite detener la ejecución de reglas desde el lado derecho de una regla.
3. Funciones de procedimientos CLIPS está diseñado para que sea un lenguaje basado en reglas eficiente, por lo que las funciones de procedimiento «if» y «while» sólo están destinadas para que se les use aplicando el buen juicio, pues la escritura de un programa de procedimiento extenso en el lado derecho de una regla anula todo el propósito de un lenguaje basado en reglas.
4. Función if Sintaxis (if <expresion-predicado> then <expresion>+ [else <expresion>+])
6. Función if Observe que la función if se empleaparaconvertir la respuestasi o no del usuario en un hechoqeuindica el tipo de acciónquehabrá de tomarse. El valor de devolución de estafunciónes la últimaexpresiónevaluada en lasporciones “then” o “else” de la función. Si la expresión se evalúacomoFALSE y no hay porción “then”, se devuelve el símboloFALSE.
7. Función while Sintaxis (while <expresion-predicado> [do] <expresion>*) Donde <expresion-predicado> es una expresión simple (como una función de predicado o una variable, y la <expresión>* que sigue a la palabra clave “do” son cero o más expresiones que se evalúan con base en el valor de devolución de la <expresion-predicado> evaluada
8. Ejemplo La siguiente modificación de la regla “continuar-verificacion” emplea la función “while” para continuar el ciclo hasta que se recibe una respuesta apropiada:
10. Función halt Esta función se emplea del lado derecho de una regla para detener la ejecución de las reglas en agenda y no necesita argumentos. Cuando se llama, no se ejecutarán otras acciones del lado derecho de la regla que se dispara y el control regresará al indicador de nivel superior. La agenda contendrá cualquier otra regla activada cuando se llamó la función “halt”.
11. Ejemplo La regla “continuar-verificacion” podría reemplazar la acción: (assert (fase halt)) Con la siguiente acción (halt) Lo que detendría la ejecución de las reglas.
12. Continuar una ejecución detenida Esta función es útil sobre todo para detener la ejecución cuando el usuario trata de reiniciar más adelante la ejecución recurriendo al comando “run”.