memory - Prolog - 如何清除内存并从头开始?

标签 memory prolog reset prolog-assert

我正在开发一个 .pl 文件中的算法,并在命令窗口上通过查询对其进行检查。 我使用动态变量和撤回/断言谓词。当我修改 pl 文件并点击“重新加载修改的文件”时,我有额外的事实,我不想要。

例如,一开始我有 计数器(0)。

然后我做一些事情,收回并断言这个计数器,它变成了 counter(7)。然后,当我重新加载修改后的 pl 文件时,我都有 计数器(0)。和 计数器(7)。

我怎样才能防止这种情况并且只有计数器(0)。一开始?

提前致谢。

最佳答案

如果您只使用这些动态事实来实现计数器,您应该考虑这是否是最好的方法。使用 assert/1retract/1 会产生相当慢的代码。

您可以将计数器变量作为您在代码中传递的另一个谓词参数(您可能需要区分输入和输出,因此有两个额外的参数),或者使用全局变量(它们是非逻辑特征,不过,这有时是不行的)。

关于memory - Prolog - 如何清除内存并从头开始?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8417475/

相关文章:

java - 我的java程序最多使用多少内存?

java - 如何从 swiprolog 转换为 tuprolog

ios - 在应用程序启动时设置 UISlider 值

ios - 将 sqlite 数据库重置为默认值

java - 读取 Java 变量

c# - 当我调用 DLL 中的函数时会发生什么

c - 从 C 函数中释放二维指针数组

c - 如何在 Prolog 中用指针实现 C 代码?

variables - 保存变量 Prolog

embedded - AT91SAM7X512复位类型问题