生成的 prolog 文件中谓词的 Prolog exit_error

标签 prolog

我正在编写的程序出现问题。该程序接受输入并根据它生成一个 prolog 程序。它会生成如下内容:

test(A):-condA(A),condB(A).
condA(val).
condB(val).

我的问题是,有时,除了上面的测试定义之外,程序中的任何地方都没有 condB(val) 或 condB。在这种情况下,例如,当我尝试询问 test(val) 时,我得到了 condB 的存在错误。有没有办法在 prolog 程序中添加一些内容,将 condB 定义为其参数的所有值均为 false?

如果这是一个愚蠢的问题,我很抱歉,因为我是序言新手。

最佳答案

您可以告诉 prolog 处理器 condB/1 是动态的:

:-dynamic condB/1.

关于生成的 prolog 文件中谓词的 Prolog exit_error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37926483/

相关文章:

macros - 创建自定义枚举的 Prolog 快捷方式

prolog - 如何基于变量而不是名称调用谓词仿函数

java - 带有 lambda 表达式的 PROLOG

prolog - 如何在 Prolog 中实现 SKI 组合子?

prolog - 找出 Prolog 中无法证明的内容

序言-狼山羊白菜

list - 在 Prolog 中旋转矩阵

prolog - 狼山羊卷心菜谜题解算器中的堆栈溢出

c++ - 如何通过 C++ FFI 从 Prolog 获取结果到 C++ 变量中

sorting - 理解prolog中快速排序的运行轨迹