我有这个(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 %)
哪个更清楚。