私はこれを後条件として(not (some #(= (:length %1) 0) %))
としています。このように書かれて、それはかなり明らかだが、この条件が満たされないとき、私はこの取得:非常に読みやすいではありません前条件と事後条件にメッセージを含めることができます
Assert failed: (not (some (fn* [p1__17852#] (= (:length p1__17852#) 0)) %))
を。事後条件や前提条件のメッセージを定義する方法はありますか?
編集1:
(外部という名前の関数が、使用して)、noahlzとnoisesmiths提案後:
(defn not-zero-length
[evseq]
(not (some (fn [item] (= (:length item) 0)) evseq)))
(defn my-func
[evseq]
{:post [(not-zero-length %)]}
evseq)
(my-func '({:length 3}{:length 0}))
が与える:
AssertionError Assert failed: (not-zero-length %)
たくさん明確です。
。私はこの機能が含まれているとは言いません。 – amalloy
解決策のように見えますが、あなたのアサーション(インライン関数ではありません)でより多くの記述的な関数名を使用しないように見えます。 – noahlz
amalloyが指摘したことを反映するように更新されました。事後条件の –