我需要在 SWI-Prolog 中编写自己的 all_different 版本。我写了一个谓词,它在我提供的输入上返回与 all_diff 相同的真/假,但是我在网上找不到一种方法来实际应用这个谓词作为约束。这是我的 all_diff 版本.
distinct([]).
distinct([X|Xs]) :-
different(X,Xs),
distinct(Xs).
different(_,[]).
different(X,[Y|Ys]) :-
(nonvar(X), nonvar(Y) -> X \= Y
;
true
),
different(X,Ys).
我需要将它应用于整数列表和_。是的,这就是数独程序项目。对不起,如果这是一个愚蠢的问题,但我对 Prolog 还是很陌生,我发现很难在网上找到足够的文档。请帮忙!