Prolog列表中只有一对

use*_*814 0 list prolog

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

我正在学习考试.

小智 5

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

one_duplicate(L) :-
    sort(L, Sorted),
    length(L, Len),
    length(Sorted, SortedLen),
    Len =:= SortedLen + 1.
Run Code Online (Sandbox Code Playgroud)

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