clojure.specはClojureでデータ、関数、マクロなどの仕様を書くためのライブラリーです。 clojure.specで仕様を書くことによる利点はいろいろありますが、まずは深く考えずにclojure.specで遊びましょう。 なお、この文書ではclojure.spec名前空間にsという別名を付けています。 また、この文書はClojure 1.9.0-alpha7の使用を前提としています。 (require '[clojure.spec :as s]) clojure.specでは仕様をスペックオブジェクトで表します。 スペックオブジェクトはs/specマクロに述語関数*1を渡すことで作れます。 次の例では「整数である」という仕様を表すスペックオブジェクトを作ります。 (s/spec integer?) ある値が仕様を満たしているかどうかを判断するにはs/conform関数を使いま