2014-04-04 16 views

回答

1

高級編程指南,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); 
+0

我認爲Eval函數很有幫助。如果只有一個事實匹配,結果實際上是指向事實數據結構的通用指針。 –

+0

不是。它將是一個帶有單個字段的多字段值,就像您在CLIPS>命令提示符下輸入表達式一樣。 –

+0

@GaryRiley是否有任何函數允許通過使用C API來修改給定的事實?當我嘗試使用'EnvEval(「(修改2(狀態錯誤))」)時,我得到以下錯誤:_Fact-indexes只能被修改用作頂級命令_。 – gliderkite

相關問題