TL;DR
- 汎用的なコレクションでデータを表す Clojure のコードは、明示的な型が不足して理解しづらい。Clojure 1.9 で入った spec は、データ構造や関数の入出力の仕様を書いて、暗黙的な構造を明示的にする。
- spec は述語を組み合わせて定義し、データの検証と無効な理由の説明、
s/fdefによる関数の引数のチェック、サンプルデータの生成、自動生成テストに使える。
内容
spec の定義と実行時の利用、spec を組み合わせたデータ検証、s/fdef による関数の引数のチェックとテストの自動生成を順に見ていく。各節のまとめは次のページにある。
- Programming Clojure, Third Edition 第5章 はじめに
- Programming Clojure, Third Edition 第5章 spec を定義する
- Programming Clojure, Third Edition 第5章 データを検証する
- Programming Clojure, Third Edition 第5章 関数を検証する
- Programming Clojure, Third Edition 第5章 関数の自動生成テスト