Hey everyone, I am new to Elixir language and I am having some issues while writing a piece of code.
What I am given is a 2D array like
list1 = [ [1 ,2,3,4,"nil"], [6,7,8,9,10,], [11,"nil",13,"nil",15], [16,17,"nil",19,20] ]
Now, what I’ve to do is to get all the elements that have values between 10 and 20, so what I’m doing is:
final_list =  Enum.each(list1, fn row -> Enum.each(row, &(if (&1 >= 10 and &1 <= 99) do final_list = final_list ++ &1 end)) end )
Doing this, I’m expecting that I’ll get my list of numbers in final_list but I’m getting blank final list with a warning like:
warning: variable "final_list" is unused (there is a variable with the same name in the context, use the pin operator (^) to match on it or prefix this variable with underscore if it is not meant to be used) iex:5 :ok
and upon printing final_list, it is not updated.
When I try to check whether my code is working properly or not, using IO.puts as:
iex(5)> Enum.each(list1, fn row -> ...(5)> Enum.each(row, &(if (&1 >= 10 and &1 <= 99) do IO.puts(final_list ++ &1) end)) ...(5)> end ...(5)> )
The Output is:
11 13 15 16 17 19 20 :ok
What could I possibly be doing wrong here? Shouldn’t it add the elements to the
If this is wrong ( probably it is), what should be the possible solution to this?
Any kind of help will be appreciated.