clips parte2x
Post on 11-Jul-2015
334 Views
Preview:
TRANSCRIPT
Parte 2Parte 2
Las Variables�Nos permiten guardar valores
�Son dinámicas y sus valores cambian según las necesidades.necesidades.
�Las variables no pueden ser el primer campo de un hecho.
�La sintaxis es:
�?<nombre>
Variables en el antecedente
de una regla.� Ejemplos:
�(defrule colorcoche(coche ?color)(coche ?color)
=>(assert (coche ?color))
Dos variables
�(defrule quienesquien(cazador ?cazador ?cazado)
=>=>(printout t ?cazador "dispara al"
?cazado crlf))
Almacenando direcciones� También pueden almacenar la dirección de un hecho.
� A veces no conocemos la posición que ocupa en la memoria.
� De esta forma usamos el operador <-
(defrule quienesquien2(?asesinato <- (cazador ?cazador ?cazado)
=>(printout t "Hecho numero " ?asesinato ":" crlf
?cazador "ha matado a" ?cazado crlf)
Variables tipo COMODINES
� En ese caso es factible que el hecho tenga 1 o más partes además de lo que buscamos, para eso:
� CLIPS> (defrule agencia-matrimonial(nombre Pedro ?)=>=>(assert (encontrado-Pedro-apellido si)))CLIPS> (assert (Pedro Gonzalez Lopez))CLIPS> fact-0CLIPS> (assert (Pedro))CLIPS> fact-1CLIPS> (assert (Pedro Lopez))CLIPS> fact-2CLIPS>
El orden de activación de las reglas
�Según están escritos se analizan para ver si están bien según la sintáxis y la lógicaestán bien según la sintáxis y la lógica
�Una vez analizada cada regla, la pone en la cola de modo que la última regla activada es la última en ejecutarse.
top related