I see this old post by Fogus:
http://blog.fogus.me/2009/12/21/clojures-pre-and-post/
With this example:
(defn constrained–fn [f x]
{:pre [(pos? x)]
:post [(= % (* 2 x))]}
(f x))
But I see this modern example:
https://ostash.dev/posts/2021-07-01-pre-post-conditions/
(defn func ^{:pre [(pos? x)] :post [(< % 100) (> % 1)]} [x] (+ 1 x))
Where it is in the metadata.
But here I still the old style:
https://clojure.org/reference/special_forms
(defn constrained-sqr [x] {:pre [(pos? x)] :post [(> % 16), (< % 225)]} (*
x x))
I was away from Clojure for a few years, so I think it I missed some of its
evolution. Is one of these styles favored?
I'm struggling with an issue where I cannot get the error to show up, even
when I deliberately send in data that would cause the assertion to return
false.
My function started:
(defn get-cisa-advisories
[cisa-advisory-urls]
{
:pre [(set? cisa-advisory-urls)]
:post [(vector? %)]
}
(println "get-cisa-advisories")
(try
When I called this with a vector, I got no error, but the app silently
died. I'm confused about this. The call to this function is wrapped in a
try/catch block, and that assertion must have thrown an error because that
is where the app dies, yet I couldn't see the exception in my catch block.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/clojure/e8d2b2da-592e-48ac-93e1-ab54ca54d9cdn%40googlegroups.com.