首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >剪辑不打印任何内容

剪辑不打印任何内容
EN

Stack Overflow用户
提问于 2021-11-23 18:37:12
回答 1查看 22关注 0票数 0

我试着在一个学校项目的剪辑中编写以下代码(尽管我不明白为什么AI是用这种语言完成的):

代码语言:javascript
复制
(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))

由于某些原因,它不会打印任何输入、AA或其他任何内容。我也尝试过使用if then else语句,但结果是一样的。

代码语言:javascript
复制
[prev code]
(blood (bt ?bt1) (acc ?acc1))
=>
(if (eq ?patient ?bt1)
then
(printout t ?bt1)
else
(printout t ?donor)))

这个想法是写一个程序,打印输血是否安全。

EN

回答 1

Stack Overflow用户

发布于 2021-11-24 02:52:36

修改您的血液模式,使bt插槽仅限于患者的血型,并将变量acc1更改为多字段变量,以便它将绑定到acc插槽中的所有值:

代码语言:javascript
复制
(defrule check-acceptance
   (patient ?patient)
   (donor ?donor)
   (blood (bt ?patient) (acc $?acc1))
   (test (member$ ?donor ?acc1))
   =>
   (printout t "Transfusion is safe" crlf))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70086152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档