我有以下事实: (断言(名字“萨拉”)) (断言(姓氏“琼斯”))
我想通过调用我的函数以自定义格式打印它们。
我有这个功能 (deffunction print-them () (绑定?n(查找事实((?n名称))TRUE)) ) 该函数将找到的事实绑定到一个多字段变量 ?n ,该变量像 Fact-1 一样打印,但我不知道如何打印事实的详细信息,例如 name 是 Sara ,last_name 是 Jones 。 你能帮我吗?谢谢。
您可以使用隐含的槽名称引用有序(隐含定义模板)事实中的数据。或者,您可以使用 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>