我正在使用嵌入在 C 程序中的 CLIPS,因此我必须通过 C 函数调用来完成所有操作,并且不能使用 CLIPS 命令行。
假设我已经断言了一些这样的事实:
AssertString("(pizza 1)");
AssertString("(cauliflower 7)");
AssertString("(cheesecake 0)");
显然,此时我没有得到(更不用说保留)任何指向我的事实的指针。当我想稍后通过使用来撤回一个事实时Retract(factPtr)
,我显然需要指向我想要撤回的事实的指针。那么,在上述几行之后,我将如何(cauliflower 7)
再次找到事实并获得指向它的指针?
我是否必须通过 获取整个事实列表GetFactList([...])
,遍历它并比较字符串?如果是这样,我将如何在DATA_OBJECT
这个函数返回的多字段中做到这一点?或者,还有更好的方法?
我将不胜感激任何想法甚至代码示例。