アルゴリズムから始める Elixir 入門
Elixir を使ってアルゴリズムとデータ構造を TDD で学ぶシリーズです。
Elixir は Erlang VM(BEAM)上で動作する関数型プログラミング言語です。パターンマッチ、パイプ演算子(|>)、不変データ構造、Enum/Stream モジュール、defstruct による構造化データ、軽量プロセス(Agent/GenServer)を活用した簡潔で並行性に優れた実装を学びます。
章構成
第 1 部: 基本
第 2 部: データ構造
第 3 部: ソートと文字列
第 4 部: 高度なデータ構造
Elixir の特徴
| 特徴 |
説明 |
| パターンマッチ |
関数頭部・case・cond による条件分岐 |
パイプ演算子 \|> |
データ変換チェーンを読みやすく記述 |
Enum / Stream |
リスト処理・遅延評価 |
defstruct |
構造化データの定義 |
Agent |
可変状態の管理(プロセスベース) |
| 末尾再帰最適化 |
BEAM VM による末尾再帰の最適化 |
| イミュータブルデータ |
すべてのデータが不変 |
実装コード
実装コードは apps/elixir/ にあります。
参考文献
- 『新・明解 Python で学ぶアルゴリズムとデータ構造』 -- 柴田望洋
- 『テスト駆動開発』 -- Kent Beck
- 『Programming Elixir >= 1.6』 -- Dave Thomas