在长生不老药中同时遍历两个列表

Wil*_*son 1 elixir

我有2个列表(也可以是另一种数据类型),代表2个矢量时钟。如何同时遍历两个列表并验证此条件:对于每个k!= j,w [k] <= v [k],其中j是参数?

Dog*_*ert 7

您正在寻找Enum.zip/2:

def check(w, v, j) do
  Enum.zip(w, v)
  |> Enum.with_index
  |> Enum.all?(fn {{ww, vv}, k} -> k == j || ww <= vv end)
end
Run Code Online (Sandbox Code Playgroud)