Tôi có số này (not (some #(= (:length %1) 0) %))
làm hậu điều kiện. Được viết như thế này khá rõ ràng, nhưng khi điều kiện này không được đáp ứng, tôi nhận được điều này:Tôi có thể đưa tin nhắn vào trước và sau điều kiện
Assert failed: (not (some (fn* [p1__17852#] (= (:length p1__17852#) 0)) %))
Điều này không dễ đọc. Có cách nào để xác định thông điệp cho một điều kiện hay điều kiện tiên quyết không?
Sửa 1:
Sau noahlz và gợi ý noisesmiths, (nhưng sử dụng một hàm có tên bên ngoài):
(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}))
cho:
AssertionError Assert failed: (not-zero-length %)
Đó là rất nhiều rõ ràng hơn.
Đó là chủ đề hai năm rưỡi, và không được nhận xét về bất cứ ai với bất kỳ quyền ra quyết định. Tôi sẽ không nói rằng tính năng này đang được xem xét để đưa vào. – amalloy
Dường như giải pháp là không sử dụng nhiều tên hàm mô tả hơn trong các xác nhận của bạn (không phải các hàm nội tuyến). – noahlz
Cập nhật câu trả lời để phản ánh những gì amalloy ghi nhận. –