我正在编写的程序出现问题。该程序接受输入并根据它生成一个 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/