From a6244ba215ae16c32adce3b1c98468e007f3c582 Mon Sep 17 00:00:00 2001 From: Siraaj Khandkar Date: Thu, 7 Aug 2014 12:39:25 -0400 Subject: [PATCH] Add hope_list:unique_preserve_order/1 --- src/hope_list.erl | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/hope_list.erl diff --git a/src/hope_list.erl b/src/hope_list.erl new file mode 100644 index 0000000..5ce527c --- /dev/null +++ b/src/hope_list.erl @@ -0,0 +1,26 @@ +-module(hope_list). + +-export_type( + [ t/1 + ]). + +-export( + [ unique_preserve_order/1 + ]). + + +-type t(A) :: + [A]. + + +-spec unique_preserve_order(t(A)) -> + t(A). +unique_preserve_order(L) -> + AppendIfNew = + fun (X, Xs) -> + case lists:member(X, Xs) + of true -> Xs + ; false -> Xs ++ [X] + end + end, + lists:foldl(AppendIfNew, [], L). -- 2.20.1