Elixirの最大の特徴は「パターンマッチング」です。条件分岐を自然に記述できます。
# 変数束縛(=はパターンマッチ演算子)
x = 42
# タプルのパターンマッチ
{:ok, value} = {:ok, "success"}
IO.puts(value) # "success"
# 関数定義(パターンで複数の節を定義)
defmodule Math do
def factorial(0), do: 1
def factorial(n), do: n * factorial(n - 1)
end
IO.puts Math.factorial(5) # 120
✅ パイプ演算子 |>
処理を連結してデータフローを直感的に書けます。
"hello world" |> String.upcase() |> String.split() |> Enum.reverse() # => ["WORLD", "HELLO"]