Prolog 测试列表是否表示没有重复项的集合
内置谓词Prolog 测试列表是否表示没有重复项的集合,prolog,Prolog,内置谓词setof/3可用于创建无重复项的有序列表 我还可以使用它来测试列表是否表示没有重复项的集合吗?像这样 no_duplicates(L) :- setof(_,_,L). 你不能。您的参数没有得到充分的实例化 如果您使用的是SWI Prolog,那么可以使用谓词 在列表中模块 你不能完全按照你描述的方式使用它。但是,如果要求列表遍历成员列表,然后对照原始列表检查该列表,则可以使用setof来确定列表是否为集合。如果它们具有相同的长度,则所有元素都是唯一的 no_duplicates(L
setof/3
可用于创建无重复项的有序列表
我还可以使用它来测试列表是否表示没有重复项的集合吗?像这样
no_duplicates(L) :- setof(_,_,L).
你不能。您的参数没有得到充分的实例化 如果您使用的是SWI Prolog,那么可以使用谓词
在
列表中
模块 你不能完全按照你描述的方式使用它。但是,如果要求列表遍历成员列表,然后对照原始列表检查该列表,则可以使用setof来确定列表是否为集合。如果它们具有相同的长度,则所有元素都是唯一的
no_duplicates(L) :-
setof(X, member(X, L), Set),
length(Set, Len),
length(L, Len).
是否有其他方法检查我是否未使用swi prolog?