We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 4582f87 commit 02d0567Copy full SHA for 02d0567
lib/elixir/lib/enum.ex
@@ -786,7 +786,7 @@ defmodule Enum do
786
def dedup(enumerable) do
787
Enum.reduce(enumerable, [], fn x, acc ->
788
case acc do
789
- [^x, _] -> acc
+ [^x | _] -> acc
790
_ -> [x | acc]
791
end
792
end)
lib/elixir/test/elixir/enum_test.exs
@@ -230,6 +230,18 @@ defmodule EnumTest do
230
assert Enum.dedup([nil]) == [nil]
231
232
233
+ test "dedup/1 with streams" do
234
+ dedup_stream = fn list -> list |> Stream.map(& &1) |> Enum.dedup() end
235
+
236
+ assert dedup_stream.([1, 1, 2, 1, 1, 2, 1]) == [1, 2, 1, 2, 1]
237
+ assert dedup_stream.([2, 1, 1, 2, 1]) == [2, 1, 2, 1]
238
+ assert dedup_stream.([1, 2, 3, 4]) == [1, 2, 3, 4]
239
+ assert dedup_stream.([1, 1.0, 2.0, 2]) == [1, 1.0, 2.0, 2]
240
+ assert dedup_stream.([]) == []
241
+ assert dedup_stream.([nil, nil, true, {:value, true}]) == [nil, true, {:value, true}]
242
+ assert dedup_stream.([nil]) == [nil]
243
+ end
244
245
test "dedup_by/2" do
246
assert Enum.dedup_by([{1, :x}, {2, :y}, {2, :z}, {1, :x}], fn {x, _} -> x end) ==
247
[{1, :x}, {2, :y}, {1, :x}]
0 commit comments