1
我已經將CLIPS嵌入到C語言程序中,我想修改事實例如更改某個插槽值,我可以使用哪個函數C語言程序。否則,我必須清除所有的事實,並提出新的事實來實現我的目標。當將CLIPS嵌入到C語言中時,可以使用哪些函數從C程序中修改事實
感謝您的任何想法和建議
我已經將CLIPS嵌入到C語言程序中,我想修改事實例如更改某個插槽值,我可以使用哪個函數C語言程序。否則,我必須清除所有的事實,並提出新的事實來實現我的目標。當將CLIPS嵌入到C語言中時,可以使用哪些函數從C程序中修改事實
感謝您的任何想法和建議
高級編程指南,http://clipsrules.sourceforge.net/OnlineDocs.html的第4.4節,有能以事實爲使用功能的列表。基本編程指南第12.9.12節中的事實集查詢和分佈式操作對於從C程序中檢索和操縱事實也很有用。例如,您可以使用以下函數調用來檢索年齡槽中值大於18的所有人deftemplate事實:
DATA_OBJECT result;
Eval("(find-all-facts ((?p person)) (> ?p:age 18))",&result);
我認爲Eval函數很有幫助。如果只有一個事實匹配,結果實際上是指向事實數據結構的通用指針。 –
不是。它將是一個帶有單個字段的多字段值,就像您在CLIPS>命令提示符下輸入表達式一樣。 –
@GaryRiley是否有任何函數允許通過使用C API來修改給定的事實?當我嘗試使用'EnvEval(「(修改2(狀態錯誤))」)時,我得到以下錯誤:_Fact-indexes只能被修改用作頂級命令_。 – gliderkite