Hi,
why does this works:
iex(33)> x=1234; [c: 12345, b: 1234, a: 123] |> Enum.filter(fn z -> case z do {key, ^x} -> IO.inspect key; {key, _} -> IO.inspect key; false end end)
:c
:b
:a
[b: 1234]
but this fails with an error:
iex(34)> x=1234; [c: 12345, b: 1234, a: 123] |> Enum.filter(fn {key, ^x} -> IO.inspect key; {key, _} -> IO.inspect key; false end)
** (CompileError) iex:34: unbound variable ^x
(stdlib) lists.erl:1352: :lists.mapfoldl/3
(stdlib) lists.erl:1353: :lists.mapfoldl/3
(elixir) src/elixir_translator.erl:297: :elixir_translator.translate/2
(stdlib) lists.erl:1352: :lists.mapfoldl/3
(elixir) src/elixir_fn.erl:26: :elixir_fn.translate_fn_match/2
(elixir) src/elixir_clauses.erl:26: :elixir_clauses.match/3
(elixir) src/elixir_clauses.erl:35: :elixir_clauses.clause/7
Regards,
X4lldux