【发布时间】:2017-03-28 17:31:05
【问题描述】:
我有三个文件:
1.) 一个python文件test.py:
import clips
PATH_TO_CLP_FILE = r'd:\temp\batch_bug.clp'
clips.BatchStar(PATH_TO_CLP_FILE)
clips.PrintFacts()
2.) 一个文件batch_bug.clp:
(assert (asdf0))
(batch "D:\\temp\\batchbug2.clp")
(assert (asdf1))
(printout t (facts))
最后是一个文件batchbug2.clp:
(assert (fdsa))
运行 python test.py 会产生以下输出:
f-0 (initial-fact)
f-1 (asdf0)
f-2 (asdf1)
For a total of 3 facts.
[ENVRNMNT8] Environment data not fully deallocated.
[ENVRNMNT8] MemoryAmount = 22.
[ENVRNMNT8] MemoryCalls = 1.
这不是我所期望的,因为没有(fdsa) 事实,即调用(batch "D:\\temp\\batchbug2.clp") 不起作用。此外,还有[ENVRNMNT8] 消息。这是怎么回事?
编辑:
我发现了 CLIPS batch*(...) 命令。并且使用它而不是 batch(...) 按预期工作。这是为什么呢?
【问题讨论】: