← クエスト一覧へ

Elixir ガイドブック

🏠

基礎知識

2 記事
1
パターンマッチングと関数

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"]
2
プロセスとOTPの基礎

Elixirの並行処理は「プロセス」という軽量な実行単位で行います。OSのプロセスとは別物で、数百万個を同時に動かせます。

# プロセスを生成してメッセージを送受信
pid = spawn(fn ->
  receive do
    {:hello, name} -> IO.puts("Hello, #{name}!")
  end
end)

send(pid, {:hello, "Elixir"})
# => Hello, Elixir!
🛡️ GenServer(汎用サーバープロセス)

OTP(Open Telecom Platform)の中心的なビヘイビアです。状態管理・リクエスト処理を構造化して記述できます。Supervisorツリーで監視し自動再起動もできます。