PR:この記事にはアフィリエイトリンクが含まれます。
「Clojure本のおすすめ」を探すと、REPL中心の入門書からWebアプリの実践書まで候補が並びます。どこから読むか、迷いますよね。
Clojureでは、不変コレクションを関数で変換し、新しい値を受け取る形で処理を組み立てます。REPLで式を試せるので、不変データも手を動かしながら理解できます。
5冊は、REPLから言語を学ぶ本、関数型の考えを深める本、Webアプリまで実装する本に分かれます。前提知識と扱う範囲を見れば、読み終えた後にできることを想像しやすくなります。
5冊の立ち位置
Clojureの基礎を学ぶ本と、その知識でアプリを組む本では、扱う範囲が異なります。作りたいものを考えると、候補を整理しやすいでしょう。
| 書名 | 主な対象 | 学べる軸 |
|---|---|---|
| Programming Clojure, Fourth Edition | 初学者 | REPL、不変コレクション、ゲームアプリ |
Getting Clojure | プログラミング経験者 | シーケンス、遅延評価、関数型 |
Clojure for the Brave and True | 未経験者を含む入門者 | REPL、基本関数、マクロ |
Clojure Applied | Clojureの基礎を学んだ人 | ドメイン設計、テスト、アプリ構成 |
Web Development with Clojure, Third Edition | 初学者から経験者 | サーバー、データベース、SPA |
入門書にも対象読者の違いがあります。プログラミング未経験者向けの本もあれば、経験を前提にした本もあります。難易度と前提を確認すれば、自分に合う説明か判断しやすくなります。
Web開発が目当てなら、サーバーのほかにデータベースやAPI、ブラウザー側まで扱うかを確認しましょう。範囲の広さから、学ぶ内容も見えてきます。
REPLが入口
REPLは入力した式をすぐ評価し、結果を返す環境です。コードを保存してアプリを起動し直す前に、小さく試せるのが便利なところ。Clojureの学習や実装によく登場します。
マップの値を変換する関数をREPLで実行し、返り値を確認します。期待と違えば式を短くして再度試す。繰り返すうちに構文とデータの形が見えてきます。
Web開発でも、この流れが役立ちます。リクエストから項目を取り出す処理や、レスポンス用データへの変換を個別に試せば、画面全体を起動する前にロジックを確かめられます。
不変データの要点
immutable data(不変データ)は、作成した値を保ったまま変更後の値を作る考え方です。Clojureのマップやベクターでは、操作結果を次の処理へ渡します。
たとえば assoc でユーザーの権限を変えても、元のマップは残ります。変更前と後を見比べられるため、どの関数が値を変えたか追いやすい。処理の確認にも役立ちます。
アプリでは、データベースやネットワークなど外部とのやり取りもあります。副作用を境界に置き、その内側で純粋関数を使うと、テストや障害調査がしやすくなります。
未経験の入口
『Clojure for the Brave and True』はClojureやJVM、関数型プログラミングの経験がなくても始められます。第1章ではビルド、実行、REPLを扱うので、環境を動かすところから学びたい人に合う本です。
全328ページです。基本関数や関数型プログラミングに加え、マクロや並行処理も扱います。Java連携も含まれ、第2章ではEmacsを使うClojure開発を取り上げます。
2015年刊なので、新しいライブラリの導入手順を重視する人より、言語の基本を学びたい人におすすめです。紙版と電子書籍付きの公式希望小売価格は49.99米ドル。実売価格は時期や店によって変わります。
第4版の実践
『Programming Clojure, Fourth Edition』は320ページで、出版社の難易度表示はBeginnerです。2026年5月刊の第4版で、REPLを使った対話型開発とプロジェクトの進め方を扱います。
不変コレクション、シーケンス、関数型プログラミングを扱い、並行処理やJava連携にも触れます。ゲームアプリの構築からテスト、対話的なプレイまで題材に含まれます。
例題環境はJava 8以上とClojure 1.12以上です。REPLからプロジェクトを進め、アプリ例まで学びたい人におすすめです。
関数型の筋道
『Getting Clojure』は2018年5月刊で288ページ。出版社の難易度表示はIntermediateです。プログラミング経験が前提なので、既にコードを書いた人におすすめです。
ベクターやリスト、マップ、セットを扱い、不変データも学びます。シーケンスと遅延シーケンスもテーマです。関数やmap、reduceを取り上げ、再帰を通じて関数型の考え方を学べます。
各章にはIn the Wildの実例、注意点、章末のまとめがあります。実例を通して機能の使われ方も学べるので、別の言語の経験をClojureへ広げたい人におすすめです。
基礎後の設計
『Clojure Applied』は2015年9月刊で238ページ。難易度表示はIntermediateで、Clojureの基礎を理解した開発者を対象にします。
ドメインモデリング、不変データ、純粋関数を扱います。コレクションとシーケンスの処理も学べます。アプリ設計へ知識をつなげたい人に合います。
REPL上の対話的テスト、clojure.test、プロパティベーステストも取り上げます。関数やデータ変換をテストで確かめる考え方につながります。
後半では状態管理や並行処理、コンポーネント設計を扱い、アプリケーションの構成とデプロイにも進みます。例題環境はClojure 1.6、Leiningen 2、Java 6以上です。
Web開発の実作
『Web Development with Clojure, Third Edition』は2021年7月刊で468ページ。対象はClojure初学者から経験者までで、初めてのWebアプリから規模を広げた実用アプリまで段階的に構築します。Web開発をClojureで実践したい人におすすめです。
サーバー側ではRingやReititを扱い、SelmerやLuminusも登場します。データベースとRESTサービスも範囲に含まれます。
フロントエンドではClojureScriptやReagent、re-frameを使うSPAを扱います。サーバー側とブラウザー側の両方を学びたい人にすすめられる内容です。
例題には最新JVMとClojure 1.9以上が必要です。Leiningenとインターネット接続を用意し、ブラウザーとテキストエディターまたはIDEも使います。範囲が広いので、Webアプリの流れを追う時間を確保しましょう。
Web設計とデータ
Webアプリはリクエストを受け取り、入力を検証し、データを読み書きしてレスポンスを返します。不変データを使うと、各段階の入力と出力が見え、処理を小分けに考えられます。
プロフィールの更新を例にすると、受信したパラメーターから必要項目を取り出し、形式を確認する処理を関数に分けられます。更新用のマップを作り、REPLで正常値と異常値の両方を試す方法もあります。
画面の状態とサーバーに保存した記録は、役割を分けて考えます。REST APIは境界を明確にし、SPAでは画面の状態を扱います。この区別はAPIや画面側の設計に関わります。
テストで支える実践
REPLでの手動確認は速いです。変更のたびに同じ操作を重ねると、確認に時間がかかります。関数ごとの入力と期待する出力をテストに残せば、後の修正も確かめやすくなります。
不変データを中心にした処理は、同じ入力から同じ出力を得る純粋関数にしやすく、テストケースも考えやすい傾向です。時刻やデータベース接続を含む処理には、境界を分ける工夫が要ります。
REPLで試した値をテストの種にして、慣れたらclojure.testに残します。『Clojure Applied』のプロパティベーステストは、一つの例では見つけにくい条件を調べる助けになります。
結論
Clojureの入門書を一冊選ぶなら『Programming Clojure, Fourth Edition』がおすすめです。REPLや不変コレクションを学び、ゲームアプリの構築まで進めます。新しいClojure環境で基礎を学びたい人にも合います。
プログラミング未経験者には『Clojure for the Brave and True』をすすめます。経験を生かして関数型を深めるなら『Getting Clojure』が合います。学び始める段階に応じて選べます。
Webアプリの実装が目標なら『Web Development with Clojure』を、基礎の先で設計を学ぶなら『Clojure Applied』を選ぶとよいでしょう。Web開発の全体を作るなら前者、設計とテストを深めるなら後者が適しています。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。





