我想知道列表是否包含任何值不止一次。這是我的。如何檢測列表是否包含重複項?
has_dupes(List) ->
has_dupes(List, []).
has_dupes([Item|List], Seen) ->
case lists:filter(fun(Elem) -> Elem == Item end, Seen) of
[] ->
has_dupes(List, [Item|Seen]);
_ ->
true
end;
has_dupes([], _Seen) ->
false.
有沒有更簡單/更簡潔/更習慣的方式來做到這一點?我在Erlang很新。
知道是否有重複的目的是什麼?例如,如果在確定重複項之後需要唯一的元素,則可以對元素進行排序,然後將元素放入不允許重複的散列圖中。 – 2010-10-22 21:16:58
@James,我試圖驗證最終來自用戶的數據是否有效,其中包括某些列表中沒有任何重複的元素。我不在乎有沒有免費版本,因爲我想盡快停止檢測不良數據。 – nmichaels 2010-10-22 21:28:47