我想從列表a中刪除列表b中找到的元素。 執行此代碼後,列表a正在打印[1,2,3,4]。Elixir從兩個列表中刪除公共元素
defmodule Test do
def listing do
a = [1,2,3,4]
b = [3,4,5,6]
Enum.each b, fn elemB ->
a = Enum.filter(a, fn(x) -> x != elemB == true end)
#IO.inspect a
end
IO.inspect a
end
end
Test.listing()
難道你還可以添加' ordsets'到基準? Erlang文檔建議使用它而不是'--'。 ':ordsets.subtract(:ordsets.from_list(a),:ordsets.from_list(b))|>:ordsets.to_list'。 – Dogbert
另外,List to MapSet轉換不是線性的,而是O(n log n),因爲在Erlang中的Map中插入值是O(log n)。 – Dogbert
@Dogbert,我做到了,請檢查結果。 –