List 在序言列表中查找所有重复项

List 在序言列表中查找所有重复项,list,prolog,duplicates,List,Prolog,Duplicates,我已经编写了以下代码,它在给定的列表中找到第一个副本并将其“返回”为L,如何将列表中的所有副本“返回”为L? 例如,副本(L[1,2,3,3,4,4])。将返回L=3,L=4 duplicate(_,[]). duplicate(L,[H|T]) :- member(H,T), L is H. 你认为L is H的语义是什么?此外,我怀疑它是否找到了第一个重复的元素:它看起来第一个元素是否是重复的。

我已经编写了以下代码,它在给定的列表中找到第一个副本并将其“返回”为L,如何将列表中的所有副本“返回”为L? 例如,副本(L[1,2,3,3,4,4])。将返回L=3,L=4

duplicate(_,[]).
duplicate(L,[H|T]) :-
    member(H,T),
    L is H.

你认为
L is H
的语义是什么?此外,我怀疑它是否找到了第一个重复的元素:它看起来第一个元素是否是重复的。