Erlang列表如何刪除重復(fù)項(xiàng)

小樊
87
2024-06-14 15:14:43

要?jiǎng)h除Erlang列表中的重復(fù)項(xiàng),可以使用以下函數(shù):

-module(remove_duplicates).
-export([remove_duplicates/1]).

remove_duplicates(List) ->
    F = fun(Elem, Acc) ->
        case lists:member(Elem, Acc) of
            true -> Acc;
            false -> [Elem|Acc]
        end
    end,
    lists:reverse(lists:foldl(F, [], List)).

使用該函數(shù)可以將一個(gè)包含重復(fù)項(xiàng)的列表轉(zhuǎn)換為一個(gè)不包含重復(fù)項(xiàng)的列表。例如:

remove_duplicates:remove_duplicates([1, 2, 3, 4, 4, 5, 6, 6, 7]).
% Output: [1,2,3,4,5,6,7]

0