TL;DR
s/explainは Spec に失敗した理由を出力し、成功したときはSuccess!を出力する。- 失敗した理由が複数あれば、すべてを出力する。
内容
Clojure には explain という関数があり、Spec に失敗したときにその理由を出力する。
(s/explain number? "42") ; nil
;; "42" - failed: number?成功したときは、Success! という文字列を出力する。
(s/explain number? 42)
;; Success!失敗した理由が複数あるときは、すべての理由を出力する。
(s/explain number-or-string? :56)
;; :56 - failed: number? at: [:n]
;; :56 - failed: string? at: [:s]