elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Lisp
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Lisp  (Leído 1,682 veces)
m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
Lisp
« en: 16 Mayo 2016, 00:12 am »

Saludos

Tengo el siguiente codigo en lisp que es un sistema experto para apagar un incendio. El
problema es que no entiendo muy bien el funcionamiento del programa. Primero esta defrule  inicio, y despues esta el initial-fact, pero no se que significa esta instrucción. Despues tenemos(assert (se-quema (read))), que lee el material que se esta quemando, pero apartir de alli ya no se como continua la ejecución del código. Si alguien me lo pudiera explicar se lo agradeceria

Código
  1. (deffacts inicio
  2.    (materiales A papel madera tela)
  3.    (materiales B aceite gas lubricante)
  4.    (materiales C magnesio sodio potasio)
  5.    (extintores A agua sustancia-quimica-seca)
  6.    (extintores B co2 sustancia-quimica-seca)
  7.    (extintores C co2 espuma)
  8. )
  9.  
  10. (defrule tipo-incendio
  11.    (se-quema ?material)
  12.    (materiales ?tipo $? ?material $?)
  13.    =>
  14.    (assert (incendio-tipo ?tipo))
  15.    (printout t "Hay un incendio de tipo " ?tipo crlf)
  16.    (printout t "De que es el extintor?" crlf)
  17.    (assert (tengo-extintor-de (read)))
  18. )
  19.  
  20. (defrule tipo-extintor
  21.    (tengo-extintor-de ?x)
  22.    (extintores ?tipo $? ?x $?)
  23.    =>
  24.    (assert (tengo-extintor ?tipo ?x))
  25.    (printout t "Tenemos un extintor de " ?x " que es de tipo " ?tipo crlf)
  26. )
  27.  
  28. (defrule puedo-apagar
  29.    (incendio-tipo ?tipo)
  30.    (tengo-extintor ?tipo ?x)
  31.    =>
  32.    (assert (puedo-apagar))
  33.    (printout t "El incendio se puede apagar con el extintor de " ?x crlf)
  34. )
  35.  
  36. (defrule inicio
  37.    (initial-fact)
  38.    =>
  39.    (printout t "Que se quema? " crlf)
  40.    (assert (se-quema (read)))
  41. )


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Python, Perl y Lisp.
Dudas Generales
gaby ♥ 5 3,586 Último mensaje 12 Septiembre 2012, 04:09 am
por Squirtle
[LISP] Necesito ayuda para programar en Lisp
Programación General
DarkSorcerer 0 2,758 Último mensaje 10 Mayo 2014, 05:32 am
por DarkSorcerer
LISP
Programación General
m@o_614 0 1,611 Último mensaje 2 Noviembre 2014, 18:10 pm
por m@o_614
problema lisp
Programación General
dormycom 0 1,575 Último mensaje 27 Marzo 2015, 19:57 pm
por dormycom
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines