0

我正在使用 SWI prolog,并且想知道如何在我的源代码中使用 setof。

我有一个文件:prolog_example.pl其中有一些事实:

stuff(hello,1,2,west).
stuff(goodbye,3,4,west).
stuff(how,5,6,north).
stuff(are,7,8,north).

canMatch(X,Y):-
    stuff(X, _, _, XZ),
    stuff(Y, _, _, YZ),
    X \= Y.

现在我想在不同的列表中获取所有西部和北部团队的集合。所以我放了:

setof(X-Y, canMatch(X,Y), ListOfMatches).

在我的源代码中。但是,当我尝试在 SWI-Prolog 中编译或运行它时,我最终得到了这个错误:

ERROR: prolog_example.pl:37:
    No permission to modify static procedure `setof/3'

但是,如果我在加载文件后将 setof 设置为查询(并且我取出我的 setof 行),我会得到我想要的正确答案。那么如何在我的源代码中使用 setof 呢?

4

0 回答 0