clojure-spec

misha 2025-09-22T04:38:32.002959Z

idk, jfyi?

(->> [1 2 3]  (s/explain (s/cat :a (s/* (s/& (complement #{3}) int?)))))
3 - failed: (complement #{3}) in: [2] at: [:a]
=> nil
(->> [1 2 3]  (s/conform (s/cat :a (s/* (s/& (complement #{3}) int?)))))
=> :clojure.spec.alpha/invalid

(->> [1 2 3]  (s/explain (s/cat :a (s/* (s/& (complement #{3}) int?)) :b (s/? #{3}))))
Success!
(->> [1 2 3]  (s/conform (s/cat :a (s/* (s/& (complement #{3}) int?)) :b (s/? #{3}))))
=> {:a [1 2 :clojure.spec.alpha/invalid], :b 3}
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^

(->> [1 2 3]  (s/conform (s/cat :a (s/* (s/and (complement #{3}) int?)) :b (s/? #{3}))))
=> {:a [1 2], :b 3}