首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在断言新事实时重置事实索引?

如何在断言新事实时重置事实索引?
EN

Stack Overflow用户
提问于 2014-04-08 10:23:09
回答 1查看 201关注 0票数 0

我已经将剪辑嵌入到C语言中。我有这样的情况:在.clp文件中,我有事实清单

代码语言:javascript
复制
(deftemplate sensor
 (slot name) 
 (slot status)) 

(deffacts FRONTSENSOR
(sensor (name 1) (status 1))
(sensor (name 2) (status 1))
(sensor (name 3) (status 0))
(sensor (name 4) (status 0))
(sensor (name 5) (status 1))
(sensor (name 6) (status 0))
(sensor (name 7) (status 0))
(sensor (name 8) (status 0))) 

现在我想取消这些事实,并在列表中声明新的事实。我使用Retract(factPtr);取消事实,使用AssertString("(sensor (name 1) (status 0))");断言事实。我打印事实清单,结果是

代码语言:javascript
复制
f-0     (initial-fact)
f-11    (sensor (name 1) (status 0))
f-12    (sensor (name 2) (status 0))
f-13    (sensor (name 3) (status 1))
f-14    (sensor (name 4) (status 0))
f-15    (sensor (name 5) (status 0))
f-16    (sensor (name 6) (status 0))
f-17    (sensor (name 7) (status 1))
f-18    (sensor (name 8) (status 1))
For a total of 9 facts.

事实指数是从11开始,而不是从1开始,我想知道是否有函数或解,新断言的事实可以从f-1开始。Ps:Clear()函数可以重置事实索引,但规则也将被清除.这似乎没什么用。

感谢你的回答或任何想法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-08 18:50:24

Reset()函数将删除所有事实并重置事实索引,而不删除任何规则。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22934164

复制
相关文章

相似问题

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