From 17b5d686d1b6c608c8fab801f44701bb0c6cccf3 Mon Sep 17 00:00:00 2001 From: Siraaj Khandkar Date: Thu, 14 Aug 2014 22:56:24 -0400 Subject: [PATCH] Amortize list traversal. --- src/hope_list.erl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hope_list.erl b/src/hope_list.erl index 5ce527c..9ce451e 100644 --- a/src/hope_list.erl +++ b/src/hope_list.erl @@ -16,11 +16,11 @@ -spec unique_preserve_order(t(A)) -> t(A). unique_preserve_order(L) -> - AppendIfNew = + PrependIfNew = fun (X, Xs) -> case lists:member(X, Xs) - of true -> Xs - ; false -> Xs ++ [X] + of true -> Xs + ; false -> [X | Xs] end end, - lists:foldl(AppendIfNew, [], L). + lists:reverse(lists:foldl(PrependIfNew, [], L)). -- 2.20.1