動かざることバグの如し

近づきたいよ 君の理想に

Elixir で配列をループしたいならEnum.each

Elixirで頻出する Enum.each/2 だが、書き方色々あって全然見れなかったのでメモ。

基本形

Enum.each(["one", "two", "three"], fn(x) -> IO.inspect(x) 
end)
# 出力
# "one"
# "two"
# "three"

省略記法を使う

Elixirでは無名関数を&を使って省略記法で書ける

これを使うと、 fn() -> end&() 、もっというと fn(x) -> fn2(x) end&fn2/1 と省略できるので、

Enum.each(["one", "two", "three"], &IO.inspect/1)

と書くことができる。

パイプライン演算子を使う

さらにパイプライン演算子を使うと

["one", "two", "three"] |> Enum.each(&IO.inspect/1)

と書くこともできる。

慣れるまで大変だけど数こなすしかないね。。。