Mam to jako (not (some #(= (:length %1) 0) %))
jako post. Napisane w ten sposób jest całkiem jasne, ale gdy ten warunek nie jest spełniony, otrzymuję to:Czy mogę dołączyć wiadomość do warunków wstępnych i końcowych?
Assert failed: (not (some (fn* [p1__17852#] (= (:length p1__17852#) 0)) %))
Który nie jest bardzo czytelny. Czy istnieje sposób zdefiniowania komunikatu dotyczącego warunku końcowego lub warunku wstępnego?
Edit 1:
Po noahlz i noisesmiths sugestii, (ale przy użyciu zewnętrznego funkcji o nazwie):
(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}))
daje:
AssertionError Assert failed: (not-zero-length %)
Który jest dużo jaśniejsze.
Ten wątek jest dwa i pół roku życia, a nie została skomentowana przez każdego z każdej władzy decyzyjnej. Nie powiedziałbym, że ta funkcja jest rozważana do włączenia. – amalloy
Wygląda na to, że nie należy używać bardziej opisowych nazw funkcji w twoich twierdzeniach (nie funkcje inline). – noahlz
Zaktualizowana odpowiedź, aby odzwierciedlić to, co zauważył amalloy. –