【发布时间】:2017-10-08 17:25:41
【问题描述】:
我有许多包含字母的列表,并且我编写了一个谓词来检查这些给定列表之一中是否存在重复项:
noDuplicates([]).
noDuplicates([H|T]):-
not(member(H, T)),
noDuplicates(T).
我有 10 个列表,我想知道其中是否没有重复,所以我将它们变成了一个大列表的子列表,例如:
[[A,B,C], [C,A,D], [E,F,G]...]]
(因此大列表中可以有重复项,但单个子列表中不能有重复项)。
我知道我必须进行 10 次重复测试;每个子列表一次,但我如何在 Prolog 中写这个?我大概可以写下 10 次,但我猜我可以使用递归让 prolog 重复自己,直到检查完所有子列表。
所以基本上:我希望这个谓词重复 N 次,直到 N 为 10。不过我真的很挣扎。有人知道该怎么做吗?
【问题讨论】: