У меня есть пустой список
val = []
Когда запускается приведенный ниже код
Enum.each [1, 2, 3], fn x ->
IO.puts x
end
Мы получаем следующий вывод.
1
2
3
:ok
Это означает,элементы могут быть доступны в каждом блоке.
Теперь, когда я запускаю следующий код:
Enum.each [1, 2, 3], fn x ->
IO.puts x
val = val ++ [x]
end
Это дает следующий результат
1
2
3
:ok
Нозначение val
не изменилось, оно по-прежнему равно []
.
Если я запускаю отдельно iex
val = val ++ [1]
Значение val
изменяется на [1].
Я новичок в эликсире с опытом работы в рубине.Необходимо понять причину, лежащую в основе вышеупомянутого поведения.