TL;DR

  • 汎用的なコレクションでデータを表す Clojure のコードは、明示的な型が不足して理解しづらい。Clojure 1.9 で入った spec は、データ構造や関数の入出力の仕様を書いて、暗黙的な構造を明示的にする。
  • spec は述語を組み合わせて定義し、データの検証と無効な理由の説明、s/fdef による関数の引数のチェック、サンプルデータの生成、自動生成テストに使える。

内容

spec の定義と実行時の利用、spec を組み合わせたデータ検証、s/fdef による関数の引数のチェックとテストの自動生成を順に見ていく。各節のまとめは次のページにある。

キーワード