我正在尝试使用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:
?
答案 0 :(得分:2)
您想要的是:
test(member, set(X == [a,b,c])) :-
member(X, [a,b,c,d]).