Prolog列表中只有一对

时间:2013-10-15 06:37:26

标签: list prolog

有人知道如何确定/确保prolog列表中只有一个重复的元素吗?

我正在学习考试。

2 个答案:

答案 0 :(得分:5)

使用sort/2对列表进行排序。它会删除重复项,因此如果排序列表恰好短一个,那么您只有一对。

one_duplicate(L) :-
    sort(L, Sorted),
    length(L, Len),
    length(Sorted, SortedLen),
    Len =:= SortedLen + 1.

找到重复对完全是另一个问题。

答案 1 :(得分:-2)

one_duplicate(L) :-
    sort(L, Sorted),
    length(L, Len),
    length(Sorted, SortedLen),
    Len =:= SortedLen + 1.