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"]