forやEnum.eachの中で要素追加してもダメだよって話です。
こんな感じの処理。javaとかphpとかよくやります。
test.ex
lst = [0, 1, 2]
hoge = []
for data <- lst do
hoge = [data] ++ hoge
end
IO.puts List.first(hoge) <> "***"
IO.puts List.last(hoge) <> "***"
これを実行すると、
$ elixir test.ex
test.ex:5: warning: variable hoge is unused
こんな感じで、hogeのfirstもlastも何も返してきません。
ず〜っと、「なんでだ、、、」ってなってたんですが、elixirでは以下が正しいみたいですね。
test.ex
lst = [0, 1, 2]
hoge = for data <- lst do
data
end
IO.puts List.first(hoge)
IO.puts List.last(hoge)
これだと
$ elixir test.ex
0
2
ちゃんと表示されました。
これに半日近く悩み続けたのでメモしておきました(`・ω・´)ゞ