我想从列表a中删除列表b中的元素。执行此代码后,列表a正在打印[1,2,3,4]。
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()
您不需要外部Enum.each
,可以通过枚举a
并检查每个元素是否为以下成员来使用单个过滤器来完成b
:
Enum.filter(a, fn el -> !Enum.member?(b, el) end)
输出:
[1, 2]
您当前的解决方案似乎正在尝试修改,a
但由于Elixir具有功能且该功能不会产生副作用,因此无法正常工作。在a
里面你each
是不一样的a
,它是原始列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句