Skip to content

Commit bcfefa1

Browse files
committed
Simplify Enum.dedup for lists
1 parent b7a832e commit bcfefa1

File tree

1 file changed

+4
-14
lines changed

1 file changed

+4
-14
lines changed

lib/elixir/lib/enum.ex

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -829,7 +829,7 @@ defmodule Enum do
829829
"""
830830
@spec dedup(t) :: list
831831
def dedup(enumerable) when is_list(enumerable) do
832-
dedup_list(enumerable, []) |> :lists.reverse()
832+
dedup_list(enumerable)
833833
end
834834

835835
def dedup(enumerable) do
@@ -4507,19 +4507,9 @@ defmodule Enum do
45074507

45084508
# dedup
45094509

4510-
defp dedup_list([value | tail], acc) do
4511-
acc =
4512-
case acc do
4513-
[^value | _] -> acc
4514-
_ -> [value | acc]
4515-
end
4516-
4517-
dedup_list(tail, acc)
4518-
end
4519-
4520-
defp dedup_list([], acc) do
4521-
acc
4522-
end
4510+
defp dedup_list([value | [value | _] = tail]), do: dedup_list(tail)
4511+
defp dedup_list([value | tail]), do: [value | dedup_list(tail)]
4512+
defp dedup_list([]), do: []
45234513

45244514
## drop
45254515

0 commit comments

Comments
 (0)