我在学习Prolog的基础知识,并使用以下代码继续运行到exists_error。基本示例中的Prolog存在错误
comes_after(m1, m2).
comes_after(m2, m3).
comes_after(m3, m4).
comes_after(m4, m5).
comes_after(m5, m6).
does_come_after(X, Y) :- comes_after(X, Y).
does_come_after(X, Z) :- comes_after(X, Y), does_come_after(Y, Z).
当执行查询如do_come_after(m1,m3)时,我不断收到以下错误。
uncaught exception: error(existence_error(procedure,comes_after/0),does_come_after/0)
这里有一个截图显示错误:
我在做什么错了,我应该牢记,以避免在未来这些错误?提前致谢。
看起来没事,但你does_come_after的逻辑可能有点瑕疵。但不应该导致这个错误。你究竟是怎么称呼这个逻辑的? – Xaser
似乎你没有查阅包含谓词的文件... – coder
我没有查阅这个文件,而是使用come_after()谓词对它进行了测试。我更新了这篇文章,查看截图的具体内容。谢谢! – Zoroshino