Add hope_list:unique_preserve_order/1
authorSiraaj Khandkar <siraaj@khandkar.net>
Thu, 7 Aug 2014 16:39:25 +0000 (12:39 -0400)
committerSiraaj Khandkar <siraaj@khandkar.net>
Thu, 7 Aug 2014 16:39:25 +0000 (12:39 -0400)
src/hope_list.erl [new file with mode: 0644]

diff --git a/src/hope_list.erl b/src/hope_list.erl
new file mode 100644 (file)
index 0000000..5ce527c
--- /dev/null
@@ -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).
This page took 0.024007 seconds and 4 git commands to generate.