void

Factorial en CLIPS

Clips es un lenguaje de programación orientado a la elaboración de sistemas expertos. Es el acrónimo de C Language Integrated Production System y soporto tres paradigmas de programación: Programación lógica, programación imperativa y la programación orientada a objetos. Su sintaxis es muy similar a LIPS aunque fue escrito en C, de manera que puede ser utilizar en Windows, MacOS y Linux. Así que si estás interesado en desarrollar un sistema experto o bien estás cursando alguna ingeniería en sistemas y lo tenés que estudiar, éstos dos ejemplos de cómo calcular un factorial te puede ser útiles:


;;Factorial calculado de forma recursiva.
(deffacts Numero-a-calcular
  (valor 5)
)
(deffacts Resultado-factorial
  (resultado 1) ;Para no multiplicar por cero
) 

(defrule calcular-factorial 

  ?h1  ?x 1))
=>
  (retract ?h1 ?h2)
  (assert (resultado (* ?x ?r)))
  (assert (valor (- ?x 1)))
  (refresh calcular-factorial)
) 

(defrule mostrar-factorial
  (resultado ?r)
  =>
  (printout t "El resultado del factorial es: " ?r)
)

;;Factorial calculado de forma iterativa
(deffacts Numero-a-calcular
  (valor 3)
)
(deffacts Resultado-factorial
  (resultado 1) ;Para no multiplicar por cero
) 

(defrule calcular-factorial
  ?h1 
  (loop-for-count ?x
    (retract ?h1 ?h2)
    (assert (resultado (* ?x ?r)))
    (assert (valor (- ?x 1)))
  )
) 

(defrule mostrar-factorial
  (resultado ?r)
  =>
  (printout t "El resultado del factorial es: " ?r)
)



Home | Volver a la página anterior