From: Siraaj Khandkar Date: Thu, 7 Aug 2014 16:39:25 +0000 (-0400) Subject: Add hope_list:unique_preserve_order/1 X-Git-Tag: 1.0.0~29 X-Git-Url: https://git.xandkar.net/?p=hope.git;a=commitdiff_plain;h=a6244ba215ae16c32adce3b1c98468e007f3c582 Add hope_list:unique_preserve_order/1 --- 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).