如何在 CLIPS 中的函数中打印有序事实?

问题描述 投票:0回答:1

我有以下事实: (断言(名字“萨拉”)) (断言(姓氏“琼斯”))

我想通过调用我的函数以自定义格式打印它们。

我有这个功能 (deffunction print-them () (绑定?n(查找事实((?n名称))TRUE)) ) 该函数将找到的事实绑定到一个多字段变量 ?n ,该变量像 Fact-1 一样打印,但我不知道如何打印事实的详细信息,例如 name 是 Sara ,last_name 是 Jones 。 你能帮我吗?谢谢。

clips
1个回答
0
投票

您可以使用隐含的槽名称引用有序(隐含定义模板)事实中的数据。或者,您可以使用 ppfact 函数来打印该数据。

CLIPS> (assert (name "Sara"))
<Fact-1>
CLIPS> (assert (name "Joe"))
<Fact-2>
CLIPS> 
(deffunction print-them ()
   (do-for-all-facts ((?n name)) TRUE 
      (println (implode$ ?n:implied))))
CLIPS> (print-them)      
"Sara"
"Joe"
CLIPS> 
(deffunction print-them (?name)
   (do-for-all-facts ((?n ?name)) TRUE 
      (ppfact ?n)))
CLIPS> (print-them name)
(name "Sara")
(name "Joe")
CLIPS>  
© www.soinside.com 2019 - 2024. All rights reserved.