Clips pas l'impression de rien

0

La question

J'ai essayé d'écrire le code suivant dans CLIPS pour un projet d'école (même si je ne comprends pas pourquoi l'IA est fait dans cette langue):

(deftemplate blood
    (slot bt)
    (multislot acc))
(deffacts acceptance
    (blood (bt 0) (acc 0 0))
    (blood (bt A) (acc 0 A))
    (blood (bt B) (acc 0 B))
    (blood (bt AB) (acc 0 A B AB)))
(defrule reading-input
=>
    (printout  t "Bloodtype of patient? ")
    (assert (patient (read)))
    (printout  t "Bloodtype of donor? ")
    (assert (donor (read))))
(defrule check-acceptance
    (patient ?patient)
    (donor ?donor)
    (blood (bt ?bt1) (acc ?acc1))
    (test (member$ ?donor ?acc1))
    =>
    (printout t "Transfusion is safe" crlf))

Pour une raison quelconque, il ne serait pas imprimer quoi que ce soit pour les entrées A et A ou quoi que ce soit d'autre. J'ai aussi essayé avec un if then else déclaration, mais même résultat.

[prev code]
(blood (bt ?bt1) (acc ?acc1))
=>
(if (eq ?patient ?bt1)
then
(printout t ?bt1)
else
(printout t ?donor)))

L'idée est d'écrire un programme qui affiche si la transfusion de sang est sécuritaire ou non.

clips member testing
2021-11-23 18:37:11
1

La meilleure réponse

0

Modifier votre sang de façon à ce que le bt logement est limité pour le type de sang de la patiente et de modifier la variable de acc1 à un multichamps variable de sorte qu'il peut se lier à toutes les valeurs de l' acc de son logement:

(defrule check-acceptance
   (patient ?patient)
   (donor ?donor)
   (blood (bt ?patient) (acc $?acc1))
   (test (member$ ?donor ?acc1))
   =>
   (printout t "Transfusion is safe" crlf))
2021-11-24 02:52:35

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................