リストbから見つかった要素をリストaから削除します。 このコードの実行後、リストaは[1,2,3,4]を印刷しています。エリクサーは2つのリストから共通の要素を削除します
Enum.filter(a, fn el -> !Enum.member?(b, el) end)
出力:
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()
ベンチマークに向かって? Erlangのドキュメントでは '--'の代わりにそれを使うことを推奨しています。 ':ordsets.subtract(:ordsets.from_list(a)、:ordsets.from_list(b))|>:ordsets.to_list'である。 – Dogbert
また、リストからマップセットへの変換は線形ではなく、ErlangのMapに値を挿入するとO(log n)なので、O(n log n)です。 – Dogbert
@Dogbert、私はそれをしました、結果を確認してください。 –