用于不确定性谓词的Prolog单元测试

时间:2018-10-01 12:46:18

标签: prolog plunit

我正在尝试使用http://www.swi-prolog.org/pldoc/doc_for?object=section%28%27packages/plunit.html%27%29中的Prolog单元测试 它为非确定性谓词提供了一个示例,

test(member, all(X == [a,b,c])) :-
    member(X, [a,b,c]).

我认为它只是测试列表X == [a,b,c]中的所有元素,测试它是否在列表[a,b,c]中。但是为什么

test(member, all(X == [a,b,c])) :-
    member(X, [a,b,c,d]).

报告wrong "all" answer:

1 个答案:

答案 0 :(得分:2)

您想要的是:

test(member, set(X == [a,b,c])) :-
    member(X, [a,b,c,d]).