口で言うより行うことがErlang習得への近道と信じています。
lists:uniq/1
リストから重複した要素を取り除きます。
> lists:uniq([3, 3, 1, 2, 1, 2, 3]).
[3,1,2]
> lists:uniq([a, a, 1, b, 2, a, 3]).
[a, 1, b, 2, 3]
lists:uniq/2
一意かどうかを判定する関数を渡せます。
%% タプルの値で一意かどうかを判定
> L1 = [{b, 1}, {a, 1}, {c, 1}, {a, 1}]
> lists:uniq(fun({K, _V}) -> K end, L1).
[{b,1},{a,1},{c,1}]
%% マップのキーで一意かどうかを判定
> L2 = [#{x => 2}, #{x => 1}, #{x => 3}, #{x => 2}]
> lists:uniq(fun (#{x := X}) -> X end, L2).
[#{x => 2},#{x => 1},#{x => 3}]
listsモジュールには他にもリスト処理のための関数がたくさんあります。
Elixirにも挑戦したい
闘魂ElixirシリーズとElixir Schoolがオススメです。