首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过在剪辑中增加特定值的顺序来输出特定事实

通过在剪辑中增加特定值的顺序来输出特定事实
EN

Stack Overflow用户
提问于 2019-01-22 02:28:40
回答 1查看 74关注 0票数 0

我有以下事实清单:

代码语言:javascript
复制
f-0    (initial-fact)
f-1    (fact 1 [input_1] 21)
f-2    (fact 1 [input_2] 28)
f-3    (fact 1 [input_3] 10)
f-4    (fact 1 [input_4] 25)
f-5    (fact 1 Normal Operation!)
f-6    (fact 2 [input_1] 7)
f-7    (fact 2 [input_2] 25)
f-8    (fact 2 [input_3] 13)
f-9    (fact 2 [input_4] 15)
f-10   (fact 2 adder a1 error!)
f-11   (fact 3 [input_1] 11)
f-12   (fact 3 [input_2] 17)
f-13   (fact 3 [input_3] 24)
f-14   (fact 3 [input_4] 31)
f-15   (fact 3 multiplier p1 error!)

有没有办法从所有这些事实中选择并打印出只包含错误数量和类型的事实?例如,我想按升序打印:

代码语言:javascript
复制
1 Normal Operation!
2 adder a1 error!
3 multiplier p1 error!

请注意,我实际上有更多的事实,并且它们在事实列表中的顺序并不像我所显示的那样是递增的。所以我必须以某种方式使它增加。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-22 04:18:06

代码语言:javascript
复制
         CLIPS (6.31 2/3/18)
CLIPS> 
(deffacts initial
   (fact 1 [input_1] 21)
   (fact 1 [input_2] 28)
   (fact 1 [input_3] 10)
   (fact 1 [input_4] 25)
   (fact 1 Normal Operation!)
   (fact 2 [input_1] 7)
   (fact 2 [input_2] 25)
   (fact 2 [input_3] 13)
   (fact 2 [input_4] 15)
   (fact 2 adder a1 error!)
   (fact 3 [input_1] 11)
   (fact 3 [input_2] 17)
   (fact 3 [input_3] 24)
   (fact 3 [input_4] 31)
   (fact 3 multiplier p1 error!))
CLIPS> 
(deffunction compare-1st (?f1 ?f2)
   (> (nth$ 1 (fact-slot-value ?f1 implied))
      (nth$ 1 (fact-slot-value ?f2 implied))))
CLIPS> 
(defrule print
   =>
   (bind ?facts 
      (find-all-facts ((?f fact)) 
                      (not (instance-namep (nth$ 2 ?f:implied)))))
   (bind ?facts (sort compare-1st ?facts))
   (foreach ?f ?facts
      (bind ?data (fact-slot-value ?f implied))
      (printout t (implode$ (first$ ?data)) " " 
                  (implode$ (rest$ ?data)) crlf))) 
CLIPS> (reset)
CLIPS> (run)
1 Normal Operation!
2 adder a1 error!
3 multiplier p1 error!
CLIPS> 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54295864

复制
相关文章

相似问题

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