我正在努力了解如何正确使用(SWI)Prolog中的discontiguous/1谓词。

buumi.pl成为这个伪事实的小文件:

discontiguous(buumi/1).

buumi(eins).
buri(zwei).
buumi(drei).

但是,运行swipl -s Buumi.pl仍然会发出以下警告:
% swipl -s Buumi.prolog
Warning: [...]/Buumi.prolog:5:
        Clauses of buumi/1 are not together in the source-file

该文档含糊不清,只是简单地指出
discontiguous :PredicateIndicator, ...
但没有给出具体用法示例。我有
找到了一些例子,表明我正确使用了它;至少,
swipl并没有提示,但同样,它也不符合我的要求。
我在这里做错了什么?

最佳答案

discontiguous/1是一个ISO指令。你必须把它作为

:- discontiguous(pred/2).

在Prolog文本的开头。

关于prolog - SWI Prolog忽略不连续谓词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21891436/

10-12 04:51